我的gridview有一个模板字段,里面有一个标签。我想使用QuestionID标记该字段,以便它不会创建重复的ID。
我尝试了以下操作:
<asp:TemplateField HeaderText="No">
<InsertItemTemplate>
<label id='<%# (string.Format("Label_{0}",
DataBinder.Eval(Container.DataItem,"QuestionID"))) %>'
runat="server"></asp:Label>
</InsertItemTemplate>
</asp:TemplateField>
但是我说错误
控件的ID属性只能使用标记中的ID属性和简单值进行设置。
是否有人知道如何制作它以便我可以在不创建重复ID的情况下分配ID?我想用javascript访问每一个。
谢谢,
马特
答案 0 :(得分:0)
首先,由于重复的ID,您没有收到此错误。无论您将什么作为ID提供给服务器控件,asp.net都会生成一个新ID并呈现它。您的例外是关于将值评估为我认为的ID属性。
IMO,让asp.net为您的标签生成ID。在标签中添加一个类,并使用JQuery获取标签的所有实例。
作为替代方案,asp:标记渲染跨度作为输出,因此您可以更改代码:
<asp:TemplateField HeaderText="No">
<InsertItemTemplate>
<span id='<%= (string.Format("Label_{0}",
DataBinder.Eval(Container.DataItem,"QuestionID"))) %>'>
</span>
</InsertItemTemplate>
</asp:TemplateField>