首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于GridView的绑定,和使用自带的编辑选项,该怎么解决

2012-01-31 
关于GridView的绑定,和使用自带的编辑选项,急!!!我有一个GridView数据源来自DataSourceDataSource里面的数

关于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列的名称

热点排行