当前位置:首页 > 技术问答

急!!!!为什么嵌套在DataGrid模板列中的DataGrid不能有修改列?

Posted by admin

void   grid_bind1()  
  {  
  string   sqlstmt="select   *   from     ls;   select   *   from   asia";  
  sqlconnection   conn   =new   sqlconnection("server=cao;uid=sa;pwd=;database=sports");  
  conn.open();  
  sqldataadapter   adapter   =new   sqldataadapter(sqlstmt,conn);  
  dataset   ds=new   dataset();  
  adapter.fill(ds);  
  ds.tables[0].tablename="ls";  
  ds.tables[1].tablename="asia";  
  datacolumn   parent   =   ds.tables["ls"].columns["lsid"];  
  datacolumn   child   =   ds.tables["asia"].columns["lsid"];  
  datarelation   relation   =   new   datarelation("relation",parent,child,false);  
  ds.relations.add(relation);  
  datagrid1.datasource   =   ds.tables["ls"].defaultview;  
  datagrid1.databind();  
  }  
   
   
   
   
  <asp:datagrid   id="datagrid1"   bordercolor="white"   runat="server"     showheader="false"   width="100%"   cellpadding="0"   cellspacing="0"     borderwidth="0"   >  
  <columns>  
  <asp:templatecolumn>  
  <itemtemplate>  
  <table   cellspacing="0"   cellpadding="0"   width="100%"   border="0">  
  <tr>  
                                                                                              <td   height="21"   align=center   bgcolor="#ff6600">    
                                                                                                  <%#   databinder.eval(container.dataitem,   "lssubject")   %>  
                                                                                                </td>  
  </tr>  
  <tr>  
  <td   align="center">  
  <asp:datagrid   id="datagrid2"   runat="server"   backcolor="#f0f0f0"   width=100%   font-size=11pt   borderwidth=1   itemstyle-horizontalalign=center   itemstyle-height="25"   showheader=false   autogeneratecolumns="false"   bordercolor="white"   datakeyfield="id"   datasource=<%#   ((datarowview)container.dataitem).createchildview("relation")   %>   oneditcommand=edit  
      oncancelcommand=cancel  
      onupdatecommand=update  
      onitemdatabound="datagrid_itembound"  
      ondeletecommand="mydatagrid_delete">  
  <columns>  
  <asp:buttoncolumn   text="删除"   commandname="delete"   runat="server"/>  
  <asp:boundcolumn   datafield=id   readonly=true   headertext=id   headerstyle-horizontalalign=center/>  
  <asp:boundcolumn   datafield="data"   itemstyle-width="40"></asp:boundcolumn>  
  <asp:boundcolumn   datafield="tim"     itemstyle-width="40"   ></asp:boundcolumn>  
  <asp:boundcolumn   datafield=img     headertext="赛事"   headerstyle-horizontalalign=center/>  
  <asp:boundcolumn   datafield=pl1   headertext="赔率"   headerstyle-horizontalalign=center/>  
  <asp:boundcolumn   datafield=qt1   headertext="主队"   headerstyle-horizontalalign=center/>  
  <asp:boundcolumn   datafield=pk   headertext="盘口"   headerstyle-horizontalalign=center/>  
  <asp:boundcolumn   datafield=qt2     headertext="客队"   headerstyle-horizontalalign=center/>  
  <asp:boundcolumn   datafield=pl2   headertext="赔率"   headerstyle-horizontalalign=center/>  
  <asp:boundcolumn   datafield=o1   headertext="主"   headerstyle-horizontalalign=center/>  
  <asp:boundcolumn   datafield=o2   headertext="和"   headerstyle-horizontalalign=center/>  
  <asp:boundcolumn   datafield=o3   headertext="客"   headerstyle-horizontalalign=center/>  
  <asp:editcommandcolumn   itemstyle-horizontalalign=center   itemstyle-wrap=false  
    headertext="修改"   headerstyle-horizontalalign=center   edittext="修改"   canceltext="取消"   updatetext="更新"/>  
  </columns>  
  </asp:datagrid></td>  
  </tr>  
  </table>  
  </itemtemplate>  
  </asp:templatecolumn>  
  </columns>  
  </asp:datagrid>  
   
  编译器错误信息:   cs0246:   找不到类型或命名空间名称“datagrid2”(是否缺少   using   指令或程序集引用?)  
   
   
  这里面明明有datagrid2啊  
 

参考文章:

  • 惠普第一款 酷睿2商务本nc4400抵京
  • 周日:仅1万元!酷睿2戴尔D620开卖
  • 4400元起 !戴尔AMD笔记本震撼上市
  • 最便宜的酷睿2本华硕Z92JN仅8999元
  • 为酷睿2让路!联想天逸F30跌破九千
  • 低价精品 惠普12寸小本B1903跌破8k
  • 再度跳水!宏碁酷睿2独显本狂降500
  • 4万元贼贵!宏碁魔鬼本抵京仅3台!
  • 13.3寸双核 1G内存DVD刻录本仅6999
  • 联想真实在酷睿2天逸F40跌破8000元
  • 网友回答:
    发表者:liuhm

    有   datagrid2,但是它是嵌套在   datagrid1   里的,所以你只能通过   datagrid1   去找   datagrid2,而不能直接在   page   页里找   datagrid2。在   datagrid1   的   item   事件里找:  
      datagrid   datagrid2   =   (datagrid)e.item.findcontrol("datagrid2");  
      然后用   datagrid2   去操作。。

    发表者:imfine

    楼上说的对,楼主你好像已经问过一次了

    发表者:imfine

    看你要在哪儿用,基本上在datagrid   的消息事件中都可以用  
       
      这句可以在绑定datagrid1的时候用  
      datagrid   datagrid2   =   (datagrid)

    在哪句处的错,把代码贴出来看看

    发表者:imfine

    你总是把datagrid1的e用到datagrid2,这个update是接受的datagrid1的事件吧,datagrid1和datagrid2的事件必须分开写

    .