我的ListView模板中有以下代码。
<asp:DropDownList runat="server" ID="myDropDown" Width="60px"
SelectedValue='<%# Eval("SelectedValue") %>'
DataSource='<%# Eval("DropDownList") %>'
style='display:<%# (bool)Eval("ShowDropDown") ? "block" : "none" %>;' >
</asp:DropDownList>
这个想法是它会生成html,但是隐藏所以我可以显示客户端。
但是,生成的html看起来像这样:
<select id="myDropDown"
style="width:60px;display:<%# (bool)Eval("ShowDropDown") ? "block" : "none" %>;">
我不明白为什么会这样做。有没有办法做到这一点(不使用类)?
答案 0 :(得分:1)
您可以添加ListView ItemDataBound事件,然后在每行中为dropdownlist添加样式属性。示例代码:
protected void ListView_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
DropDownList myDropDown = (DropDownLiast)e.Item.FindControl("myDropDown");
System.Data.DataRowView rowView = e.Item.DataItem as System.Data.DataRowView;
myDropDown.Style["display"] = ((bool)rowView["ShowDropDown"])?"block":"none";
}
}