Контроль не отражает обновления - PullRequest
1 голос
/ 02 февраля 2011

У меня есть главная страница с панелью обновлений.На одной из страниц приложения, над которым я работаю, есть собственный элемент управления с текстовыми полями asp :.Этот элемент управления также имеет вид сетки.

При щелчке по кнопке asp: link для строки событие OnRowCommand срабатывает и выполняет свою магию правильно, одна часть которой устанавливает свойство Text в asp: textbox.Это работает.

Моя проблема в том, что обновление не отображается в пользовательском интерфейсе.

Панель обновления:

<asp:ScriptManager ID="scriptManager" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="updPanel" runat="server">
        <ContentTemplate>
              [...more code...]

Кнопка LinkButton:

 <ItemTemplate>
         <asp:LinkButton ID="LinkButton1" CommandArgument='<%# Eval("ID")%>' CommandName="EDIT" runat="server">Edit</asp:LinkButton>     
</ItemTemplate>

Обработчик событий:

protected void RowCommand(object sender, GridViewCommandEventArgs e)
        {
            switch (e.CommandName)
            {
                case "EDIT":
                    //stuff happens here
                    [ASP:Textbox].Text = [Result of stuff that happened];
                     ^this is what isn't reflected on the page
                    break;

Я знаю, что мне чего-то не хватает в жизненном цикле страницы, но я рисую пробел.

Ответы [ 2 ]

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

Просто потратил несколько часов на это.

Как представляется, изменения отражаются, только если свойство CommandName установлено на что-то другое, чем «Редактировать» (и любые другие стандартные команды).Попробуйте установить его на «EditThis», он работает для меня.

0 голосов
/ 03 февраля 2011
protected void RowCommand(object sender, GridViewCommandEventArgs e)
        {
            switch (e.CommandName)
            {
                case "EDIT":
                    //stuff happens here
                    [ASP:Textbox].Text = [Result of stuff that happened];
                     ^this is what isn't reflected on the page
                    // ADD THIS
                    updPanel.Update();
                    break;
...