将角色列添加到 ASP.NET Web 表单中的 DataGrid
Add roles column to DataGrid in ASP.NET Web Form
我在 ASP.NET 中有 Web 表单,我想在其中向我的应用程序中的所有用户显示 table。应该有用户名、用户电子邮件、上次 activity 日期和用户角色。
目前我有这个:
<asp:DataGrid id="UserGrid" runat="server"
CellPadding="2" CellSpacing="1"
Gridlines="Both" AutoGenerateColumns="false">
<Columns>
<asp:BoundColumn DataField="UserName" ReadOnly="False" HeaderText="Name" />
<asp:BoundColumn DataField="Email" ReadOnly="True" HeaderText="Email" />
<asp:BoundColumn DataField="LastActivityDate" ReadOnly="True" HeaderText="Last activity"/>
</Columns>
<HeaderStyle BackColor="darkblue" ForeColor="white" />
</asp:DataGrid>
_
UserGrid.DataSource = Membership.GetAllUsers();
UserGrid.DataBind();
我想向此 DataGrid 添加列角色。我该怎么做?
下一步我想添加带有按钮的列来编辑用户信息、管理他的角色等
如下所示添加您的 GridView 的列
<asp:GridView id="UserGrid" runat="server"
CellPadding="2" CellSpacing="1"
Gridlines="Both" AutoGenerateColumns="false">
<Columns>
<asp:BoundColumn DataField="UserName" ReadOnly="False" HeaderText="Name" />
<asp:BoundColumn DataField="Email" ReadOnly="True" HeaderText="Email" />
<asp:BoundColumn DataField="LastActivityDate" ReadOnly="True" HeaderText="Last activity"/>
<asp:TemplateField HeaderText="User Roles" ItemStyle-Width="30%">
<ItemTemplate>
<asp:Label ID="lblrole" runat="server" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<HeaderStyle BackColor="darkblue" ForeColor="white" />
</asp:GridView>
声明一个全局变量来保存您的用户角色。
string[] roles;
在页面加载中获取您的数据
protected void page_load(object sender,EventArgs e)
{
if(!IsPostBack)
{
string[] roles=GetUserRoles();
}
}
在您的 RowDataBound 事件中将数据添加到您的 gridview
protected void UserGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType= DataControlRowType.DataRow)
{
e.Row.FindControl("lblrole").Text=roles[e.Row.RowIndex];
}
}
如果数据顺序不匹配,则对 collections.Here DataField 是您的数据库列名或您在查询中使用的别名进行排序
我在 ASP.NET 中有 Web 表单,我想在其中向我的应用程序中的所有用户显示 table。应该有用户名、用户电子邮件、上次 activity 日期和用户角色。
目前我有这个:
<asp:DataGrid id="UserGrid" runat="server"
CellPadding="2" CellSpacing="1"
Gridlines="Both" AutoGenerateColumns="false">
<Columns>
<asp:BoundColumn DataField="UserName" ReadOnly="False" HeaderText="Name" />
<asp:BoundColumn DataField="Email" ReadOnly="True" HeaderText="Email" />
<asp:BoundColumn DataField="LastActivityDate" ReadOnly="True" HeaderText="Last activity"/>
</Columns>
<HeaderStyle BackColor="darkblue" ForeColor="white" />
</asp:DataGrid>
_
UserGrid.DataSource = Membership.GetAllUsers();
UserGrid.DataBind();
我想向此 DataGrid 添加列角色。我该怎么做?
下一步我想添加带有按钮的列来编辑用户信息、管理他的角色等
如下所示添加您的 GridView 的列
<asp:GridView id="UserGrid" runat="server"
CellPadding="2" CellSpacing="1"
Gridlines="Both" AutoGenerateColumns="false">
<Columns>
<asp:BoundColumn DataField="UserName" ReadOnly="False" HeaderText="Name" />
<asp:BoundColumn DataField="Email" ReadOnly="True" HeaderText="Email" />
<asp:BoundColumn DataField="LastActivityDate" ReadOnly="True" HeaderText="Last activity"/>
<asp:TemplateField HeaderText="User Roles" ItemStyle-Width="30%">
<ItemTemplate>
<asp:Label ID="lblrole" runat="server" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<HeaderStyle BackColor="darkblue" ForeColor="white" />
</asp:GridView>
声明一个全局变量来保存您的用户角色。
string[] roles;
在页面加载中获取您的数据
protected void page_load(object sender,EventArgs e)
{
if(!IsPostBack)
{
string[] roles=GetUserRoles();
}
}
在您的 RowDataBound 事件中将数据添加到您的 gridview
protected void UserGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType= DataControlRowType.DataRow)
{
e.Row.FindControl("lblrole").Text=roles[e.Row.RowIndex];
}
}
如果数据顺序不匹配,则对 collections.Here DataField 是您的数据库列名或您在查询中使用的别名进行排序