Asp.net 如何在标记中设置DropDownList选定项?
我在GridView控件的模板列中有一个DropDownList。GridView绑定到对象列表。每个对象都有一个int类型的属性,该属性对应于DropDownList列表项之一中的一个值。我可以通过在下拉列表中添加数据绑定事件来编程设置所选项目,但我想知道是否有办法通过在aspx标记中使用代码块来设置所选项目。您可以通过以下方式在标记中设置它:Asp.net 如何在标记中设置DropDownList选定项?,asp.net,data-binding,drop-down-menu,listitem,Asp.net,Data Binding,Drop Down Menu,Listitem,我在GridView控件的模板列中有一个DropDownList。GridView绑定到对象列表。每个对象都有一个int类型的属性,该属性对应于DropDownList列表项之一中的一个值。我可以通过在下拉列表中添加数据绑定事件来编程设置所选项目,但我想知道是否有办法通过在aspx标记中使用代码块来设置所选项目。您可以通过以下方式在标记中设置它: <ItemTemplate> <asp:DropDown .. SelectedValue='<%# Eval("Key")
<ItemTemplate>
<asp:DropDown .. SelectedValue='<%# Eval("Key") %>' />
</ItemTemplate>
取决于绑定方式,是否使用数据源控件?不管是什么情况,我注意到这种方法可能会尝试在绑定项之前设置值,这可能会引发异常。不确定,如果发生过一次,我想可能是这样,但我应该更深入地研究它
HTH.您也可以使用
GridView
的RowDataBound事件,或者您可以按照@Brian所述在标记中进行选择。在这种设计中要小心。以这种方式创建网格下拉列表意味着,对于下拉列表中的每个选项,您将对每一行重复。如果您有多个行或多个下拉列,这会很快增加到超过MB的页面大小,这将降低性能
也就是说,您可以使用上下文绑定脚本标记在标记中执行此操作:
<asp:DropDown id="dropDown1" SelectedValue='<%# Eval("Key") %>' runat="server"/>
上下文绑定标记还允许您调用页面/用户控件上的公共/受保护函数,如下所示:
<asp:DropDown id="dropDown1" SelectedValue='<%# myFunction((int) Eval("Key")) %>' runat="server"/>
public string myFunction(int key){
return key.ToString();
}
公共字符串myFunction(int键){
return key.ToString();
}
作为为每行生成相同重复HTML的替代方法,您可以使这些下拉列表自动完成,或者创建一个只呈现HTML一次的隐藏下拉列表,然后使用JQuery或JavaScript填充所有网格下拉列表客户端