У меня есть элемент управления входом в элемент управления loginview, а в шаблоне входа в систему есть gridview и sqldatasource.
Мне нужно использовать имя пользователя для фильтрации этого вида сетки. Но я всегда получаю ошибку Ссылка на объект не установлена на экземпляр объекта. Я также пытался добавить .tostring к page.user.identity.name
Посмотрите на мой код ниже:
<asp:LoginView ID="LoginView1" runat="server">
<AnonymousTemplate>
<asp:Login ID="Login1" runat="server" OnLoggedIn="Login1_LoggedIn">
</asp:Login>
</AnonymousTemplate>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ApplicationServices %>"
ProviderName="<%$ ConnectionStrings:ApplicationServices.ProviderName %>"
SelectCommand="SELECT DISTINCT [UserName], [Date], [TimeIn], [TimeOut], [Total] FROM [attendance] ORDER BY [Date] where username = @username ">
<SelectParameters>
<asp:Parameter Name="username" />
</SelectParameters>
</asp:SqlDataSource>
Для кода
Protected Sub Login1_LoggedIn(ByVal sender As Object, ByVal e As EventArgs)
TryCast(LoginView1.FindControl("SqlDataSource1"), SqlDataSource).SelectParameters("username").DefaultValue = Page.User.Identity.Name
End Sub