微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在TemplateField中操作DropDownList

如何解决在TemplateField中操作DropDownList

| 我在GridView的TemplateField内部有一个dropdownlist。 我想向其动态添加列表项,并编写代码以在索引更改时进行处理。我该如何处理列表,因为当它位于TemplateField中时,我无法直接引用它。 这是我的代码
<asp:TemplateField HeaderText=\"Transfer Location\" Visible=\"false\">
   <EditItemTemplate>
      <asp:DropDownList ID=\"ddlTransferLocation\" runat=\"server\" ></asp:DropDownList>
   </EditItemTemplate>
 </asp:TemplateField>
    

解决方法

如果我了解要正确执行的操作,则可以按以下方式处理将项目添加到下拉菜单中:
foreach (GridViewRow currentRow in gvMyGrid.Rows)
{
    DropDownList myDropDown = (currentRow.FindControl(\"ddlTransferLocation\") as DropDownList);
    if (myDropDown != null)
    {
        myDropDown.Items.Add(new ListItem(\"some text\",\"a value\"));
    }
}
然后,如果您要处理DropDownList的索引更改,则只需向控件添加事件处理程序:
<asp:DropDownList ID=\"ddlTransferLocation\" runat=\"server\" OnSelectedIndexChanged=\"ddlTransferLocation_SelectedIndexChanged\" AutoPostBack=\"true\"></asp:DropDownList>
然后,在该事件处理程序中,您可以使用
(sender as DropDownList)
从中获取所需内容:
protected void ddlTransferLocation_SelectedIndexChanged(object sender,EventArgs e)
{
    DropDownList myDropDown = (sender as DropDownList);
    if (myDropDown != null) // do something
    {
    }
}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。