Связывание Gridview DropDownList из кода позади - PullRequest
3 голосов
/ 28 февраля 2011

Мне нужно связать вид сетки с колонкой флажка, колонкой droupdown и текстовым полем. это как режим по умолчанию редактировать. Пожалуйста, помогите мне связать элементы комбинированного списка из кода позади. Значения поля со списком необходимо получить из веб-службы. все привязки данных сетки из кода позади. Пользователь может изменять данные в сетке.

  <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
        <Columns>
        <asp:TemplateField >
                <ItemTemplate >
                    <asp:CheckBox ID="CheckBox1" runat="server" Checked= "<%# Bind('select') %>" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Roles">
                <ItemTemplate>
                    <asp:DropDownList ID="DropDownList1" runat="server" 
                        SelectedValue='<%# Eval("Roles") %>'>
                    </asp:DropDownList>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Name">
                <ItemTemplate>
                    <asp:TextBox ID="TextBox1" runat="server" Text="<%# Bind('Name') %>"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

код позади

 protected void Page_Load(object sender, EventArgs e)
{

    DataTable table = new DataTable();
    table.Columns.Add("select", typeof(bool));
    table.Columns.Add("Roles", typeof(string));
    table.Columns.Add("Name", typeof(string));
    table.Rows.Add(true, "Admin", "name1" );
    table.Rows.Add(true, "Admin", "name2");
    table.Rows.Add(true, "user", "name3");
    table.Rows.Add(false, "user", "name4");
    table.Rows.Add(false, "Admin", "name5");
    GridView1.DataSource = table;
    GridView1.DataBind();

}

1 Ответ

3 голосов
/ 28 февраля 2011

Вы можете попробовать что-то вроде этого.

<asp:DropDownList ID="DropDownList1" runat="server" 
OnDataBound="DropDownList_OnDataBound"></asp:DropDownList>

и

protected void DropDownList_OnDataBound(object sender, EventArgs e)

{
   DropDownList ddl = sender as DropDownList;
   if(ddl != null)
   {
        // call web service and 
        // populate ddl.Items
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...