如何在标记中设置DropDownList所选项?

Jer*_*emy 5 asp.net data-binding listitem drop-down-menu

我在GridView控件的模板列中有一个DropDownList.GridView绑定到对象列表.每个对象都有一个int类型的属性,它对应于一个DropDownLists ListItems中的值.我可以通过在下拉列表中添加DataBind事件来以编程方式设置所选项目,但我想知道是否有办法通过在aspx标记中使用代码块来设置所选项目.

jja*_*cka 10

在这个设计中要小心.以这种方式创建网格下拉意味着对于下拉列表中的每个选项,您将重复每一行.如果您有多个行或多个下拉列,这可以非常快速地添加到超过MB的页面大小,这将降低性能.

话虽这么说,您可以通过使用上下文绑定脚本标记在标记中执行此操作:

<asp:DropDown id="dropDown1" SelectedValue='<%# Eval("Key") %>' runat="server"/>
Run Code Online (Sandbox Code Playgroud)

上下文绑定标记还允许您在页面/用户控件上调用public/protected函数,如下所示:

<asp:DropDown id="dropDown1" SelectedValue='<%# myFunction((int) Eval("Key")) %>' runat="server"/>

public string myFunction(int key){
  return key.ToString();
}
Run Code Online (Sandbox Code Playgroud)

作为为每一行生成相同重复HTML的替代方法,您可以创建这些下拉式自动填充程序或创建隐藏下拉列表,只显示HTML一次,然后使用JQuery或JavaScript填充所有网格下拉客户端.