-1

我正在使用登录视图。loginview 中有一个gridview,我想将它与数据库表绑定,但是我无法在.cs 代码中访问这个gridview。

我试过这个:

GridView GridView1 = (GridView)LoginView1.FindControl("GridView1");

但gridview再次没有初始化。请注意,在我设置的 web.config 文件中

<authentication mode="Forms"/>

有人知道这个问题的解决方案吗?

这部分代码:

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

    <asp:LoginView ID="LoginView1" runat="server">  
     <LoggedInTemplate>  

      <div class="tab-content" id="mytabcontent">
        <div class="tab-pane active" id="new1">
            <asp:GridView ID="GridView1" runat="server">
            </asp:GridView>   
        </div>
        </div>
      </LoggedInTemplate>  

      <AnonymousTemplate>  
               <asp:HyperLink runat="server" navigationURL =         "default.aspx">Login</asp:HyperLink>
       </AnonymousTemplate>  
     </asp:LoginView> 

</asp:Content>
4

2 回答 2

1

您可能会收到此错误,因为用户可能未通过身份验证。

尝试

 if(User.Identity.IsAuthenticated)
 {
     GridView GridView1 = (GridView)LoginView1.FindControl("GridView1");

 }

使用断点并检查是否调用了访问 Gridview 的行。

更新:

要进行身份验证,请创建 Auth Cookie

FormsAuthenticationTicket authTicket = new
                              FormsAuthenticationTicket(1, //version
                              username.ToString(),                    //user name
                              DateTime.Now,                //creation
                              DateTime.Now.AddDays(365), //Expiration
                              false, ""
                    //Persistent
                              );

                System.Web.Security.FormsAuthentication.RedirectFromLoginPage(username.ToString(), true);

// 在登录页面创建 cookie 后重定向到 Secured 页面

于 2012-08-06T10:28:36.750 回答
0

您可以只处理 GridView 的 init 事件:

<asp:GridView ID="GridView1" runat="server" OnInit="GridView1_Init">
</asp:GridView>   
于 2012-08-06T10:32:45.140 回答