关于GridView的绑定,和使用自带的编辑选项,急!!!
我有一个GridView
数据源来自DataSource
DataSource里面的数据来自我的一个类的一个方法,这个方法返回一个DataSet
由于数据库中键名都是英文的,所以显示出来的表头都是英文。
.aspx中的代码如下
<asp:GridView ID= "adminsGridView " runat= "server " AutoGenerateDeleteButton= "True " DataKeyNames= "id " DataSourceID= "AdminsDataSource " AllowPaging= "True " PageSize= "20 " AllowSorting= "True " AutoGenerateEditButton= "True ">
<HeaderStyle CssClass= "title " />
</asp:GridView>
<asp:ObjectDataSource ID= "AdminsDataSource " runat= "server " SelectMethod= "getAdmins " TypeName= "oe.Biz.UserDeal " DeleteMethod= "delAdmin " UpdateMethod= "updateAdmin ">
<DeleteParameters>
<asp:Parameter Name= "id " Type= "Int32 " />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name= "id " Type= "Int32 " />
<asp:Parameter Name= "username " Type= "String " />
<asp:Parameter Name= "userType " Type= "Byte " />
<asp:Parameter Name= "trueName " Type= "String " />
</UpdateParameters>
</asp:ObjectDataSource>
GridView 的 SELECT 绑定到 如下方法
public static DataSet getAdmins()
{
DataSettings settings = DataConfig.GetSettings();
oe.DataAccess.UserDeal ud = new oe.DataAccess.UserDeal(settings.ConnectionString);
DataSet admins = ud.getAdmins();
//admins.Tables[0].Columns[0] 未作设置
admins.Tables[0].Columns[1].ColumnName = "用户名 ";
admins.Tables[0].Columns[2].ColumnName = "密码 ";
admins.Tables[0].Columns[3].ColumnName = "类型 ";
admins.Tables[0].Columns[4].ColumnName = "姓名 ";
return admins;
}
由于预先不知道会有多少列,所以无法设置HeadText。
但是我又希望显示的表头是中文的。所以只能靠admins.Tables[0].Columns[1].ColumnName = "用户名 ";这样的方法来改变标题名称。
可是当我使用GridView自带的“编辑”时,就无发使用了。
我的Update方法为
public static bool updateAdmin(int id, string password, byte userType, string trueName)
{
DataSettings settings = DataConfig.GetSettings();
oe.DataAccess.UserDeal ud = new oemeo.DataAccess.UserDeal(settings.ConnectionString);
return ud.updateAdmin(id, password, userType, trueName);
}
页面错误显示为:
ObjectDataSource“AdminsDataSource”未能找到带参数的非泛型方法“updateAdmin”: 密码, 类型, 姓名, 用户名, id。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidOperationException: ObjectDataSource“AdminsDataSource”未能找到带参数的非泛型方法“updateAdmin”: 密码, 类型, 姓名, 用户名, id。
如果不改变标题为中文,只要参数名称一一对应,就可以成功调用updateAdmin,但是标题又必须要用中文。
谁能告诉我应该怎么办啊?谢谢!
[解决办法]
adminsGridView.HeaderRow.Cells[0].Text = "中文 ";
adminsGridView.HeaderRow.Cells[1].Text = "中文 ";
adminsGridView.HeaderRow.Cells[2].Text = "中文 ";
adminsGridView.HeaderRow.Cells[3].Text = "中文 ";
[解决办法]
可以在绑定后,改GridView列的名称
[解决办法]
可以在绑定后,改GridView列的名称