gridview: показать ссылку, но редактировать выпадающий список - PullRequest
3 голосов
/ 03 апреля 2011

У меня есть gridview, и у него есть колонка автора. Я хочу отобразить имя автора в виде гиперссылки, поэтому, когда пользователь нажимает на него, он перенаправляется на страницу автора. Но когда пользователь хочет отредактировать автора для текущего продукта, он должен увидеть выпадающий список. Я пытаюсь реализовать это с помощью поля шаблона:

<asp:TemplateField HeaderText="автор">
        <ItemTemplate>
            <asp:HyperLink ID="HyperLink1" runat="server" NavigateURL='<%# "~/CMS/AuthorPage.aspx?a="+ Eval("AuthorID")%>' Text='<%#Eval("AuthorID")%>' />                                    
        </ItemTemplate>
        <EditItemTemplate>
                <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource3" 
        DataTextField="Name" DataValueField="ID"/>
<asp:SqlDataSource ID="SqlDataSource3" runat="server" 
        ConnectionString="<%$ ConnectionStrings:aspnetdbConnectionString1 %>" 
        SelectCommand="SELECT [ID], [Name] FROM [Authors] ORDER BY [Name]"></asp:SqlDataSource>                
</EditItemTemplate>
</asp:TemplateField>       

Но как мне указать выбранное значение и как сохранить выбранное значение после редактирования?

1 Ответ

2 голосов
/ 03 апреля 2011

Вам нужно сделать это в RowDataBound событии GridView, а затем в RowUpdating событии вы можете получить выбранное значение

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    DropDownList DropDownList1 = (DropDownList)e.Row.FindControl("DropDownList1");
    DropDownList1.SelectedValue = "SomeID";
}

и получить выбранное значение с помощью

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    DropDownList DropDownList1 = (DropDownList)this.GridView1.Rows[e.RowIndex].FindControl("DropDownList1");
    string value = DropDownList1.SelectedValue;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...