У меня есть пользовательский элемент управления, чтобы включить одиночный выбор из таблицы, которая содержит GridView внутри UpdatePanelGridView не изменяет выбранную строку после первого постбэка
<asp:UpdatePanel runat="server" ID="upSelection" UpdateMode="Conditional" ChildrenAsTriggers="false">
<ContentTemplate>
<asp:TextBox runat="server" ID="txtControlText" SkinID="M_Selection" ReadOnly="true"></asp:TextBox>
<asp:Button runat="server" ID="btnSelection" Text="..." CssClass="btnSelection" OnClick="btnSelection_Click" CausesValidation="false" /><asp:Panel runat="server" ID="popupSelection" CssClass="popup">
<asp:UpdatePanel runat="server" ID="upSelectionPopup" UpdateMode="Conditional" class="updatePanel">
<ContentTemplate>
<div class="popup-content">
<asp:GridView ID="gvSelection" SelectedRowStyle-BackColor="#FFBCBC" runat="server" OnRowDataBound="gvSelection_RowDataBound">
</asp:GridView>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:ImageButton runat="server" ID="btnSaveSelection" SkinID="Save" OnClick="btnSaveSelection_Click" CausesValidation="false" /></ContentTemplate></asp:UpdatePanel>
popup-content
сНу показано с помощью диалога JQuery, когда я нажмите на btnSelection
и снова спрячьтесь, когда я нажму на btnSaveSelection
. Во всплывающем окне я обновляю текстовое поле с выбранной информацией о строках.
Я использую эти данные строки, связанные события для того, чтобы выбор строк, который выдвигает на первый план выбранной строки
protected void gvSelection_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
e.Row.Attributes["onclick"] = Page.ClientScript.GetPostBackClientHyperlink((GridView)sender, "Select$" + e.Row.RowIndex);
}
Это отлично работает в первый раз я открываю всплывающее окно. Со второго раза, если я ранее выбрал строку и подтвердил, что происходит, когда я нажимаю на строку, я не вижу выделенную выделенную строку. postback выполняется, и строка выбирается правильно на стороне сервера, потому что при сохранении выделения я вижу, что текстовое поле обновляется до нужного значения. Проблема в том, что клиент не отображает gridview с изменением выделения.
Обратите внимание, что если я открываю и закрываю всплывающее окно, не подтверждая ничего, все работает правильно, я вижу, что различные строки выделяются щелчком.
это, кажется, проблема рендеринга клиента, не связанная с самим событием select, потому что если я включу пейджинг, когда есть ранее выбранная строка, я не вижу новую страницу, когда я нажимаю кнопку «Далее» , Я могу видеть другие страницы только в том случае, если ничего не подтвержу.
пугающем Дело в том, что если я проверить содержание ответа, который отправляется клиенту, когда я нажимаю на строке, внутри него я вижу правильный table
, т.е. tr
с цветом фона является один я просто нажал , Просто это не получается для клиента!
Я попытался изменить событие из RowDataBound в RowCreated; Я попытался привязать событие OnSelectedIndexChanged к gridview и загнать upSelectionPopup.Update();
в код-позади, но все в коде и во время выполнения кажется правильным, вплоть до того момента, когда я должен увидеть новое gridview в браузере, которое я не делаю ,
Любые идеи? Спасибо
Выбор строки выполняется с помощью щелчка клиента, и я не хочу, чтобы полная обратная передача – Piddu