【发布时间】:2011-10-17 15:16:24
【问题描述】:
我在这方面遇到了很多麻烦。我到处寻找,所以我希望有人可以向我解释如何做到这一点或告诉我。这是我的问题:
我有一个用 ASP.Net 创建的数据绑定项 (ItemTemplate) 填充的 DataGrid。
我之所以使用ItemTemplates 而不是常规的DataBound 字段是为了启用DataGrid 的编辑模式。在我的ItemTemplates 中,我有显示数据的标签和两个选项按钮(编辑/删除)。我的按钮在后面的代码中工作(C#)。
Edit 将 DataGrid 置于编辑模式。在EditItemTemplates 中,我有DropDownLists、TextBoxes 和一个保存 按钮来代替编辑 按钮。
Save 按钮也适用于我为它编写的代码。总而言之,DataGrid 工作得很好,并且可以整齐地显示所有内容。但是,我希望 Save 按钮完成最后一项工作:我希望它检查文本框并验证输入的值是否符合我设置的标准(保持请记住,这些都在EditItemTemplates)。
我已经编写了 Javascript 来检查验证。我想要显示一个模式窗口(我已经设置了),并且我想要更改相关文本框的 CSS。
我想使用 Javascript 执行此操作,但我的问题是我无法检查 Save 按钮来创建 Click 事件,并且我无法“定位”要验证的文本框他们。有没有办法在 DataGrid 处于编辑模式时“找到”这些元素?
如果有帮助,这里有一小部分用于创建 DataGrid 的代码:
<asp:DataGrid ID="dgCamsizer" CssClass="data" runat="server" AutoGenerateColumns="False"
GridLines="None" OnItemCommand="dgCamsizer_ItemCommand" ShowHeader="true">
<Columns>
<asp:TemplateColumn HeaderStyle-CssClass="infoHeaderDG">
<HeaderTemplate>
Operator</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="Operator" Text='<%# DataBinder.Eval(Container.DataItem, "Operator") %>'
runat="server" /></ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="EditOper" Width="40px" Text='<%# DataBinder.Eval(Container.DataItem, "Operator") %>'
runat="server"></asp:TextBox></EditItemTemplate>
<HeaderStyle CssClass="infoHeaderDG"></HeaderStyle>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderStyle-CssClass="infoHeaderDG">
<ItemTemplate>
<asp:Button ID="Edit" Text="Edit" CommandName="Edit" runat="server" /></ItemTemplate>
<EditItemTemplate>
<asp:Button ID="Save" Text="Save" CommandName="Save" runat="server" /></EditItemTemplate>
<HeaderStyle CssClass="infoHeaderDG"></HeaderStyle>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
也许我应该重新提出我的问题:感谢 Zetlen,我设法“找到”TextBoxes。我还设法获得了这些值。现在...如何使用这些值来测试验证?
这是我用来获取值的代码:
$("#<%=dgCamsizer.ClientID %> :text").each(function () {
alert($(this).val());
});
【问题讨论】:
-
如果您已经回答了您的问题,请在此处发布答案并接受它,以便其他人知道它已解决。不要编辑标题——Stack Overflow 有其他视觉提示可以告诉用户问题已得到解答。 :)
标签: javascript datagrid