cgv*_*val 3 c# asp.net gridview drop-down-menu
我想为gridview中的每个条目添加一个下拉列表.
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False"
onselectedindexchanged="GridView1_SelectedIndexChanged">
<Columns>
<asp:TemplateField HeaderText="Bank">
<ItemTemplate>
<asp:DropDownList ID="DropDown"
AutoPostBack="true" runat="server" DataTextField="Name" DataValueField="Name"
>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)
在后端,我有以下代码,以便将数据表绑定到该下拉列表.
DataTable reader = BusinessLayer.BusinessLayerHandler.GetBankList();
DropDown.DataSource = reader;
DropDown.DataTextField = "NAME";
DropDown.DataValueField = "NAME";
DropDown.DataBind();
Run Code Online (Sandbox Code Playgroud)
我的问题是在后端找不到在网格视图(DropDown)创建的下拉列表,就好像它不存在一样.
我能做什么?
该DropDownList会在每一个项目中创建GridView,所以不能为dropdownlists是一个字段.不过,您可以检索单行的DropDownList(例如in RowDataBound或RowCreatedevent)
protected void grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(r.Row.RowType == DataControlRowType.DataRow)
{
DropDownList dropdown = e.Row.FindControl("DropDown") as DropDownList;
if(dropdown != null)
{ /* your code */ }
}
}
Run Code Online (Sandbox Code Playgroud)
或者您可以使用DropDownList自身的事件并访问sender参数.
<asp:DropDownList ID="DropDown" OnLoad="dropdownLoad" />
protected void dropdownLoad(object sender, EventArgs e)
{
DropDownList dropdown = sender as DropDownList;
if(dropdown != null)
{ /* your code */ }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19258 次 |
| 最近记录: |