您好我正在使用asp转发器列表项目的专业文本框和div用于提供警报文本框类型(数字或字符串等)这里是html;
<asp:Repeater ID="rptProperties" runat="server" DataSourceID="dsProperties" OnItemDataBound="rptProperties_ItemDataBound">
<ItemTemplate>
<li>
<div class="form_title"><%# Eval("ad_en")%> </div>
<div class="form_content" id="fk_<%# Eval("id")%>">
<asp:HiddenField runat="server" ID="hdnPropertyID" Value='<%# Eval("id") %>' />
<asp:TextBox runat="server" ID="txtProperty"></asp:TextBox>
<div class="alert">
<%= labelType %>
</div>
<div class="select_box" runat="server" id="divSelectBox">
<asp:DropDownList runat="server" ID="ddlProperty" CssClass="data_select">
<asp:ListItem>Select</asp:ListItem>
</asp:DropDownList>
</div>
</div>
</li>
</ItemTemplate>
</asp:Repeater>
这里有代码;
if (id!=130)
{
txtProperty.Attributes.Add("Class", "data_input");
labelType = GetLocalResourceObject("stringType").ToString();
}
else
{
labelType = GetLocalResourceObject("intType").ToString();
}
即使是代码触发if和else两者,所有转发器文本框都采用&#34; intType&#34;值是最后一项的值。但是;
txtProperty.Attributes.Add("Class", "data_input");
行可以正常使用。只有&#34; labelType&#34;对我来说可变的问题。谢谢
答案 0 :(得分:1)
抱歉,但这不起作用。
&lt; %%&gt;代码块是在c#代码运行后的运行时编译的。所以你改变了labelType,然后运行asp代码块,标签类型是它改变的最后一件事。
要使它工作,你可以改变实现它的方式,也许可以将代码隐藏块写入asp块。
<div class="alert">
<%= Convert.ToInt32(Eval("id")) != 130 ? GetLocalResourceObject("stringType").ToString() : GetLocalResourceObject("intType").ToString() %>
</div>
并将代码隐藏更改为
if (id!=130)
{
txtProperty.Attributes.Add("Class", "data_input");
}