#asp.net #gridview #drop-down-menu #aspxgridview
#asp.net #просмотр сетки #выпадающее меню #aspxgridview
Вопрос:
У меня есть выпадающий список в HeaderTemplate сетки, я написал некоторый код на стороне сервера для события SelectedIndexChanged этого выпадающего списка, но это событие никогда не срабатывает. Я также включил состояние просмотра выпадающего списка и страницы в true Ant ide, в чем должна быть проблема
Комментарии:
1. Вы установили для параметра autopostback выпадающего списка значение true?
2. Покажите нам соответствующий код, в котором вы создали выпадающий список и где вы привязываете его к источнику данных (или вы добавили элементы).
Ответ №1:
Я решил эту проблему в своей среде…. Пожалуйста, ознакомьтесь с приведенным ниже кодом..
Это моя gridview
страница в aspx.
<asp:GridView ID="grvGrid" runat="server" AllowPaging="True"
AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="CustomerID" OnRowDataBound="grvGrid_RowDataBound">
<Columns>
<asp:BoundField DataField="CustomerID" HeaderText="CustomerID" ReadOnly="True"
SortExpression="CustomerID" />
<asp:BoundField DataField="CompanyName" HeaderText="CompanyName"
SortExpression="CompanyName" />
<asp:TemplateField>
<HeaderTemplate>
<%--<asp:Label ID="lblMon1" runat="server"></asp:Label>--%>
<asp:DropDownList id="ddlMon" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlMon_SelecdtedIndexChanges">
<asp:ListItem Text="1" Value="1" Selected="True">1</asp:ListItem>
<asp:ListItem Text="2" Value="2">2</asp:ListItem>
<asp:ListItem Text="3" Value="3">3</asp:ListItem>
</asp:DropDownList>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblblbl" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Получить привязку к просмотру сетки в событии загрузки страницы
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
GetTable();
grvGrid.DataSource = dstable;
grvGrid.DataBind();
}
}
Найдите выпадающий элемент управления и свяжите его с событием
protected void grvGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (Page.IsPostBack)
{
if (e.Row.RowType == DataControlRowType.Header)
{
DropDownList ddlmon = e.Row.FindControl("ddlMon") as DropDownList;
ddlmon.SelectedIndexChanged = new EventHandler(ddlMon_SelecdtedIndexChanges);
}
}
}
Выпадающий выбранный индекс изменяет событие
protected void ddlMon_SelecdtedIndexChanges(object sender, EventArgs e)
{
// Your Code paste here
}
Комментарии:
1. Вы получили свой ответ нет!!!! вы должны принять свой ответ, если это правильно!!!!
Ответ №2:
Возможная проблема здесь в том, что вы DropDownList
можете не установить свойство
AutoPostBack="true" try add this to your `DropDownList`