How to use data bound value to form unique identifier for item control?

纵然是瞬间 提交于 2019-12-08 02:15:03

问题


I know that we can bind the data to each control within ItemTemplate as follow:

<ItemTemplate>
    <asp:TextBox runat="server"
        Text='<%# Eval("LabelText") %>' />
</ItemTemplate>

However, I found no way to concatenate a string prefix with the data value to form a unique string identifier. The following code shows my idea, but it doesn't work.

<ItemTemplate>
    <asp:TextBox runat="server"
         ID='TextBox_<%# Eval("LabelID") %>'
         ValidationGroup = 'VVG_<%# Eval("LabelGroup") %>'
         Text='<%# Eval("LabelText") %>' />
</ItemTemplate>

回答1:


Try this

ID = '<%# "Text_" + Eval("LabelID") %>'

ValidationGroup = '<%# "VVG_" + Eval("LabelGroup") %>'

EDIT:

ID cannot be assigned in this fashion for server side controls. You can assign ID for simple form controls such as <input type="text"... />. Also take a look at Control.ClientIDMode (ASP.NET 4).




回答2:


Try this:

<asp:TextBox runat="server"         
    ID='<%# String.Format("TextBox_{0}",Eval("LabelID")) %>'         
    ValidationGroup = '<%# String.Format("WG_{0}",Eval("LabelGroup")) %>'         
    Text='<%# Eval("LabelText") %>' />


来源:https://stackoverflow.com/questions/6012655/how-to-use-data-bound-value-to-form-unique-identifier-for-item-control

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!