【发布时间】:2012-09-24 03:54:07
【问题描述】:
我在 c# 中使用 asp.net。
我有一个 gridview 并且有一个 TemplateField 列。在 TemplateField 列内有一个 EditItemTemplate,在 EditItemTemplate 内是一个链接按钮(LinkButton1)。
我正在尝试通过 javascript 函数在链接按钮上执行 getelementbyid:
document.getElementById("<%= LinkButton1.ClientID %>").disabled = true;
但是在编译时,我得到了错误:“LinkButton1”在当前上下文中不存在。
aspx gridview代码:
<asp:GridView ID="GridView1" runat="server" Height="157px" Width="814px"
CellPadding="4" ForeColor="#333333" GridLines="None"
OnRowEditing="GridView1_RowEditing"
OnRowCancelingEdit="GridView1_RowCancelingEdit"
OnRowUpdating="GridView1_RowUpdating" AutoGenerateColumns="False"
OnRowDataBound="GridView1_RowDataBound"
onrowdeleting="GridView1_RowDeleting" Font-Size="Medium"
AllowPaging="True" onpageindexchanged="GridView1_PageIndexChanged" onpageindexchanging="GridView1_PageIndexChanging" >
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<Columns>
<asp:TemplateField ShowHeader="False">
<EditItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update"
Text="Actualizar" ValidationGroup="upd_validation"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel"
Text="Cancelar"></asp:LinkButton>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="LinkButton3" runat="server" CausesValidation="False" CommandName="Edit"
Text="Editar"></asp:LinkButton>
<asp:LinkButton ID="LinkButton4" runat="server" CausesValidation="False" CommandName="Delete"
Text="Eliminar" CommandArgument='<%# Container.DataItemIndex %>' onclientClick="return ConfirmDelete()"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
我该如何解决这个问题?
谢谢。
【问题讨论】:
-
你能提供你的aspx的代码吗?
-
是的。我刚刚用 aspx 代码编辑了主帖。
-
好的。它不会那样工作,因为您的链接按钮实际上在模板中。您不会有一个但很多链接按钮,使用 ClientID 的代码将不知道要获取哪一个。说明你想做什么,我会尝试提供另一种解决方案。
-
在gridview上,当处于编辑模式时,还有一些文本框要编辑,如果一些文本框不符合要求的长度,我希望禁用链接按钮,如果文本框符合要求长度,我想启用链接按钮............我该怎么做?
标签: javascript asp.net