У меня есть GridView
контроль внутри UpdatePanel
и простой TextBox
.Лучший способ сохранения данных GridView внутри UpdatePanel
После того, как текст введен в TextBox
(и нажата кнопка), список результатов извлекается из базы данных и привязывается к GridView
.
grd.DataSource = DataManager.GetFilteredList(txt.Text);
grd.DataBind();
Каждая строка возвращается имеет LinkButton
TemplateField
столбец с параметром CommandArgument
и CommandName
.
Я хочу запустить код при нажатии этой кнопки, но потому, что весь Page
воссоздан даже при частичной обратной передаче GridView
теряет свои данные. Обычно я передавал необходимые параметры внутри строки запроса, но поскольку это insidide UpdatePanel
Я не могу этого сделать.
Что такое хороший и чистый подход к этому вопросу? Единственное, что приходит мне на ум, было бы вместо того, чтобы использовать RowCommand
, чтобы создать кнопку GridView
с простым элементом HTML <a>
, передав параметр строки запроса в его параметре HRef
, затем запустим полную обратную передачу и, наконец, проведем операцию внутри события Page_Load
но это кажется неуклюжим.
Вот запрашиваемая ASP разметки:
<asp:UpdatePanel ID="upd" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="input-group">
<asp:TextBox ID="txt" runat="server" CssClass="form-control"></asp:TextBox>
<div class="input-group-btn">
<asp:LinkButton ID="btn" CssClass="btn btn-default" runat="server" OnClick="btn_Click">Search</asp:LinkButton>
</div>
</div>
<hr />
<asp:GridView ID="grd" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" ItemType="xxx.Policy" AllowPaging="True" PageSize="10" OnRowCommand="grd_RowCommand">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="btn" CommandName="Connect" CommandArgument='<%#: Item.Id %>' runat="server">Connect</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="grd" EventName="RowCommand" />
</Triggers>
</asp:UpdatePanel>
Спасибо.
Вы можете добавить некоторые из ваших ASP разметки – meda
Я добавил разметку. Ничего необычного. – barjed