日期:2014-05-19  浏览次数:20362 次

关于GridView分页、显示、以及编辑的问题
我载入的一个表有多个字段,但是我只想显示其中几个字段~
用SQL语句写入后
string   ISql   =   "select   idd,dishno   as   菜品编号,dishname   as   菜品名   from   T_Dish ";
然后我再在GridView1的RowEditing事件中写入:
GridView1.EditIndex   =   e.NewEditIndex;
GridView1.DataBind();
然后前台代码里加入如下:
<Columns>      
<asp:BoundField   DataField= "idd "   HeaderText= "ID "   ReadOnly= "True "   />    
<asp:BoundField   DataField= "dishno "   HeaderText= "菜品编号 "     />      
<asp:BoundField   DataField= "dishname "   HeaderText= "菜品名 "   />                  
<asp:CommandField   HeaderText= "编辑 "   ShowEditButton= "True "   />
</Columns>
这时候弹出的结果页面是:
_________________________________________________________
ID     |   菜品编号   |     菜品名   |   编辑   |   idd   |   Dishno   |DishName|
---------------------

如果我去掉:
<asp:BoundField   DataField= "idd "   HeaderText= "ID "   ReadOnly= "True "   />    
<asp:BoundField   DataField= "dishno "   HeaderText= "菜品编号 "     />      
<asp:BoundField   DataField= "dishname "   HeaderText= "菜品名 "   />        
这几句的话,产生的结果如下:
________________________________
编辑   |   ID   |     菜品编号   |   菜品名   |
--------------------------------

如果我把SQL语句改成如下:

ISql   =   "select   idd,dishno,dishname   from   T_Dish ";
前台代码如下:

<Columns>      
<asp:BoundField   DataField= "idd "   HeaderText= "ID "   ReadOnly= "True "   />    
<asp:BoundField   DataField= "dishno "   HeaderText= "菜品编号 "     />      
<asp:BoundField   DataField= "dishname "   HeaderText= "菜品名 "   />                  
<asp:CommandField   HeaderText= "编辑 "   ShowEditButton= "True "   />
</Columns>

产生的结果如下:
____________________________________________________
编辑     |   ID   |     菜品编号   |   菜品名   |   其他字段…………   |
----------------------------------------------------

而我想获得的结果是:
________________________________
  ID   |     菜品编号   |   菜品名   |编辑   |
--------------------------------

请问我该怎么操作?

用代码如何能控制列宽??
我控制列宽的代码:
  GridView1.Columns[0].ItemStyle.Width   =   10;
提示是:索引超出范围。必须为非负值并小于集合大小
参数名:   index

请问这个怎么解决。。。

谢谢了,请各位达达赐教了


------解决方案--------------------
AutoGenerateEditButton= "false "
------解决方案--------------------
protected void GridView1_RowCreated( object sender, GridViewRowEventArgs e )
{
if (e.Row.RowType == DataControlRowType.Header)