Автоматически закрывать JqueryDialog - PullRequest
0 голосов
/ 18 марта 2011
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"  
    onselectedindexchanged="GridView1_SelectedIndexChanged" 
    onselectedindexchanging="GridView1_SelectedIndexChanging">
    <Columns>
        <asp:CommandField HeaderText="Show" SelectText="ShowMessage" 
            ShowSelectButton="True" />
    </Columns>
 </asp:GridView>

<div id="content"><div>

protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{   
        string html = "";
        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            html += "<div style='display:none' id='" + i + "'>" + GridView1.Rows[i].Cells[3].Text + "</div>";
            GridView1.Rows[i].Cells[0].Attributes.Add("onclick", "$('#" + i + "').dialog()");
        }
        content.InnerHtml = html;  
}

показать диалог при клике по ячейкам [0] и автоматически закрыть диалог?Зачем?

Ответы [ 2 ]

0 голосов
/ 22 ноября 2011

Всякий раз, когда вы выбираете другую строку в вашей сетке, событие GridView1_SelectedIndexChanging на сервере должно быть запущено, для этого необходимо выполнить полное PostBack, чтобы получить измененные данные.

Всякий раз, когда происходит PostBack, все ваши действия, выполненные с использованием JavaScript, исчезают, и их необходимо снова инициализировать при повторной загрузке страницы.

Рассмотрим PostBack как запрос новой страницы к серверу.

Вы можете рассмотреть возможность использования ASP.NET AJAX и поместить DataGrid в UpdatePanel, чтобы избежать полной страницы PostBack, но только раздел DataGrid.

0 голосов
/ 22 ноября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...