在asp.net 2.0中,有了登陆控件框logincontrol了,十分方便,但有的时候,可能要对
logincontrol框进行一些改进,比如如果需要在用户名一栏,以dropdownlist的方式给用户选择
要登陆的用户名或者角色的话,则有的时候十分方便。
但你直接想去掉logincontrol中的用户名输入框时不行的,会出错,其实可以把这个用户名输入框
的visible属性设置为false就可以了,可以再加一个下拉框了,例子如下
<td align="right">
<asp:Label ID="UserNameLabel" runat="server"
AssociatedControlID="UserName">User Name:</asp:Label>
</td>
<td>
<asp:TextBox ID="UserName" runat="server" Visible="false"></asp:TextBox>
<asp:DropDownList ID="DropDownList1" runat="server" />
</td>
然后,如果要用asp.net 2.0的membership功能的话(其实不觉得有啥好用的),可以将dropdonwlist与一个
objectdatasource绑定,如下
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="ObjectDataSource1" />
<asp:ObjectDataSource ID="ObjectDataSource1" DataObjectTypeName="System.Web.Security.MembershipUser" runat="server" SelectMethod="GetAllUsers" TypeName="System.Web.Security.Membership"></asp:ObjectDataSource>
如果要得到用户在下拉框中选择的用户名,很简单,
protected void Login1_LoggingIn(object sender, LoginCancelEventArgs e)
{
Login1.UserName = ((DropDownList)Login1.FindControl("DropDownList1")).SelectedValue;
}
在logginIn事件中捕捉就可以了
logincontrol框进行一些改进,比如如果需要在用户名一栏,以dropdownlist的方式给用户选择
要登陆的用户名或者角色的话,则有的时候十分方便。
但你直接想去掉logincontrol中的用户名输入框时不行的,会出错,其实可以把这个用户名输入框
的visible属性设置为false就可以了,可以再加一个下拉框了,例子如下
<td align="right">
<asp:Label ID="UserNameLabel" runat="server"
AssociatedControlID="UserName">User Name:</asp:Label>
</td>
<td>
<asp:TextBox ID="UserName" runat="server" Visible="false"></asp:TextBox>
<asp:DropDownList ID="DropDownList1" runat="server" />
</td>
然后,如果要用asp.net 2.0的membership功能的话(其实不觉得有啥好用的),可以将dropdonwlist与一个
objectdatasource绑定,如下
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="ObjectDataSource1" />
<asp:ObjectDataSource ID="ObjectDataSource1" DataObjectTypeName="System.Web.Security.MembershipUser" runat="server" SelectMethod="GetAllUsers" TypeName="System.Web.Security.Membership"></asp:ObjectDataSource>
如果要得到用户在下拉框中选择的用户名,很简单,
protected void Login1_LoggingIn(object sender, LoginCancelEventArgs e)
{
Login1.UserName = ((DropDownList)Login1.FindControl("DropDownList1")).SelectedValue;
}
在logginIn事件中捕捉就可以了