LinkButton не инициализирует контроль внутри сетки во второй раз

У меня был gridview , в котором есть TemplateField , связанный с LinkButton в ItemTemplate с CommandName как «Изменить». Когда пользователь нажимает на LinkButton , он открывает ModalPOp Up для редактирования записей текущей строки сетки. В первый раз он работает нормально, и когда modalPopUp закрыт, и пользователь снова нажимает на тот же LinkButton, он не работает, получая ссылку на объект , не установленную в экземпляр исключения объекта . После отладки я обнаружил, что во второй раз их Label lblUserID в текущей выбранной строке не инициализируется. Пожалуйста, предложите мне, как я исправить эту проблему, поскольку это очень срочно.

Код:


    
    
    
                                                
    
        
            
                
            
            
                
            
        

        
            
                
                                                                
            
                
                
                
                
                
            
        
        
            
                
            
            
                
                
                
            
        
        
            
                
            
            
                
                    
                    
                
            
        
        
            
                
            
            
                
                
                
                
                
            
        
        
            
                
            
            
                
                
                
            
        
        
            
                
            
            
                
                    
                    
                    
                    
                    
                    
                
            
        
        
            
                
            
            
                
                
                
                
            
        
        
            
                
            
            
                
                
                
                
            
        
        
            
                
            
            
                
            
        
        
            
                
            
            
                
                
            
        
        
            
                
            
            
                
                
            
        
        
            
                
                
            
            
            
        
    
    
        <table width="100%">
            <tr>
                <td style="text-align: left">
                    Page Size:
                    
                        
                        
                        
                        
                        
                    
                </td>
                <td style="text-align: right">
                    
                </td>
            </tr>
        </table>
    

Код C #: -

protected void gvUser_RowCommand(object sender, GridViewCommandEventArgs e)
{
    try
    {
        if (e.CommandName.Equals("Edit"))
        {
            Control ctrl = e.CommandSource as Control;
            if (ctrl != null)
            {
                GridViewRow _currenrtrow = ctrl.Parent.NamingContainer as GridViewRow;
                Label lblUserID = (Label)_currenrtrow.FindControl("lblUserID");
                string userID = lblUserID.Text.ToString();
                ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "OpenModalDialog", "<script type='text/javascript'>window.showModalDialog('Userinfo.aspx?code=" + userID.ToString() + "', null, 'unadorned:yes ;resizable:0 ;dialogWidth:800px ;dialogHeight:550px ;status:no ;scroll:no ;status=no;');</script>", false);

            }
        }
        if (e.CommandName.Equals("Select"))
        {

        }
    }
    catch (Exception ex)
    {
        throw ex;
    }
}
0
nl ja de
Привяжите сетку после того,
добавлено автор Kiran1016, источник

1 ответы

protected void gvUser_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        try
        {
            if (e.CommandName.Equals("Edit"))
            {
                Control ctrl = e.CommandSource as Control;
                string userId;
                if (ctrl != null)
                {
                    GridViewRow _currenrtrow = ctrl.Parent.NamingContainer as GridViewRow;
                    Label lblUserID = (Label)_currenrtrow.FindControl("lblUserID");
                    if (lblUserID == null)
                    {
                        userId = StaticGlobalValue.RequestedUser.ToString();
                    }
                    else
                    {
                        userId = lblUserID.Text.ToString();
                        StaticGlobalValue.RequestedUser = userId;
                    }

                    ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "OpenModalDialog", "<script type='text/javascript'>window.showModalDialog('Userinfo.aspx?code=" + userId.ToString() + "', null, 'unadorned:yes ;resizable:0 ;dialogWidth:800px ;dialogHeight:550px ;status:no ;scroll:no ;status=no;');</script>", false);
                    gvUser.DataBind();
                }
            }

            if (e.CommandName.Equals("Select"))
            {

            }
        }
        catch (Exception ex)
        {
            throw ex;
        }

    }

Создал статический объект RequestedUser , и он исправил мою проблему.

0
добавлено
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)