ASP.NET C#(3.5),成员资格,如何在GridView中使用DropDownList设置RoleName?
我尝试在GridView中使用DropDownList设置“RoleName”,但出现以下错误:ASP.NET C#(3.5),成员资格,如何在GridView中使用DropDownList设置RoleName?,gridview,drop-down-menu,membership,Gridview,Drop Down Menu,Membership,我尝试在GridView中使用DropDownList设置“RoleName”,但出现以下错误: DataBinding: 'System.String' does not contain a property with the name 'RoleName'. 我做了你想象的任何事情,在不同的论坛上提到过。 代码如下: <asp:GridView ID="gvUsers" runat="server" PageSize="25" CssClass="gv" AutoGenerateC
DataBinding: 'System.String' does not contain a property with the name 'RoleName'.
我做了你想象的任何事情,在不同的论坛上提到过。
代码如下:
<asp:GridView ID="gvUsers" runat="server" PageSize="25" CssClass="gv" AutoGenerateColumns="False" DataKeyNames="UserName" DataSourceID="odsUsersInRoles" EnableModelValidation="True">
<Columns>
<asp:TemplateField HeaderText="Role">
<EditItemTemplate>
<asp:DropDownList ID="ddlRoles" runat="server" DataSourceID="odsRoles" DataTextField="RoleName" DataValueField="RoleName" SelectedValue='<%# Eval("RoleName") %>'></asp:DropDownList>
<asp:ObjectDataSource ID="odsRoles" runat="server" SelectMethod="GetAllRolesButAdministrator" TypeName="cUsers"></asp:ObjectDataSource>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("RoleName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
...
</Columns>
</asp:GridView>
public static string[] GetAllRolesButAdministrator()
{
string[] roles = System.Web.Security.Roles.GetAllRoles();
int removeIndex = Array.IndexOf(roles, "Administrator");
if (removeIndex >= 0)
{
string[] newStrItems = new string[roles.Length - 1];
for (int i = 0, j = 0; i < newStrItems.Length; i++, j++)
{
if (i == removeIndex)
j++;
newStrItems[i] = roles[j];
}
roles = newStrItems;
}
return roles;
}
...
公共静态字符串[]GetAllRolesButAdministrator()
{
string[]roles=System.Web.Security.roles.GetAllRoles();
int removeIndex=Array.IndexOf(角色,“管理员”);
如果(removeIndex>=0)
{
string[]newStrItems=新字符串[roles.Length-1];
for(inti=0,j=0;i
请有人帮帮我 我犯了一个非常愚蠢的错误:-( 我试图设置其RoleName的行根本没有角色,因此它无法将“null”绑定到任何角色 问题已解决:-)