请帮帮我。DataBinding:“System.Data.DataRowView”不包含名为“ID”的属性。
前台:
<asp:GridView ID= "gvEme " runat= "server " AutoGenerateColumns= "False " Width= "100% "
AllowPaging= "True " OnPageIndexChanging= "gvEme_PageIndexChanging "
OnRowDeleting= "gvEme_RowDeleting " OnRowDataBound= "gvEme_RowDataBound "
OnRowUpdating= "gvEme_RowUpdating ">
<Columns>
<asp:TemplateField HeaderText= "用户名 ">
<ItemTemplate>
<%# Eval( "UserName ")%>
</ItemTemplate>
<ItemStyle Width= "20% " />
</asp:TemplateField>
<asp:TemplateField HeaderText= "真实姓名 ">
<ItemTemplate>
<%# Eval( "Name ") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText= "班级 ">
<ItemTemplate>
<%# Eval( "UserClass ") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText= "性别 ">
<ItemTemplate>
<%# Eval( "Sex ") %>
</ItemTemplate>
<ItemStyle HorizontalAlign= "Center " Width= "60px " />
</asp:TemplateField>
<asp:TemplateField ShowHeader= "False " HeaderText= "是否通过 ">
<ItemTemplate>
<asp:CheckBox ID= "chkExamine " runat= "server " Text= ' <%# Bind( "Examine ") %> ' Width= "25px "> </asp:CheckBox>
</ItemTemplate>
<ItemStyle HorizontalAlign= "Center " Width= "80px " />
</asp:TemplateField>
<asp:TemplateField ShowHeader= "False " HeaderText= "删除同学 ">
<ItemTemplate>
<asp:Button ID= "btnDelete " runat= "server " CausesValidation= "False " CommandName= "Delete "
Text= "删除 " OnClientClick= "return confirm( '是否删除此同学? '); " />
</ItemTemplate>
<ItemStyle HorizontalAlign= "Center " Width= "80px " />
</asp:TemplateField>
</Columns>
</asp:GridView>
后台:
protected DAL.Users myDAL = new DAL.Users();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindData();
}
}
protected void BindData()
{
DataTable dt = new DataTable();
myDAL.GetNewUserList(dt);
gvEme.DataSource = dt;
gvEme.DataBind();
}
SQL语句:
public void GetNewUserList(DataTable dt)
{
string cmdText = "SELECT [UserName],[Name],[UserClass],[Sex],[Examine] FROM [Users] ORDER BY ID ";
db.LoadDataTable(cmdText, dt);
}
[解决办法]
DataTable dt = new DataTable();
myDAL.GetNewUserList(dt);
gvEme.DataSource = dt;
再看看你的函数,你的dt还没数据
如果确认你的函数没错误的话,把
public void GetNewUserList(DataTable dt)
改成
public void GetNewUserList(ref DataTable dt)
试下
[解决办法]
如果GridView 使用了 ID那么你的Sql就要把ID取出来绑定上去
string cmdText = "SELECT ID, [UserName],[Name],[UserClass],[Sex],[Examine] FROM [Users] ORDER BY ID ";