DropDownList в GridView asp.net - PullRequest
       5

DropDownList в GridView asp.net

3 голосов
/ 05 сентября 2011

Я хочу добавить выпадающий список к каждой записи в сетке.

    <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>

На заднем конце у меня есть следующий код для привязки данных к этому выпадающему списку.

DataTable reader = BusinessLayer.BusinessLayerHandler.GetBankList();
DropDown.DataSource = reader;
DropDown.DataTextField = "NAME";
DropDown.DataValueField = "NAME";
DropDown.DataBind();

Моя проблема в том, что выпадающий список создается в сеткеview (DropDown) не найден на заднем конце, как будто он не существует ..

Что я могу сделать?

Ответы [ 2 ]

8 голосов
/ 05 сентября 2011

DropDownList будет создаваться для каждого отдельного элемента в GridView, поэтому не может быть одним полем для раскрывающихся списков.Тем не менее, вы можете получить DropDownList для одной строки (например, в RowDataBound или RowCreated событии)

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 */ }
  }
}

Или вы можете использовать событие самого 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 */ }
}
0 голосов
/ 05 сентября 2011

вы можете найти dropdown в grid databound event по grid.findcontrol.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...