急!!!!为什么嵌套在DataGrid模板列中的DataGrid不能有修改列?
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啊
参考文章:
有 datagrid2,但是它是嵌套在 datagrid1 里的,所以你只能通过 datagrid1 去找 datagrid2,而不能直接在 page 页里找 datagrid2。在 datagrid1 的 item 事件里找:
datagrid datagrid2 = (datagrid)e.item.findcontrol("datagrid2");
然后用 datagrid2 去操作。。
楼上说的对,楼主你好像已经问过一次了
看你要在哪儿用,基本上在datagrid 的消息事件中都可以用
这句可以在绑定datagrid1的时候用
datagrid datagrid2 = (datagrid)
在哪句处的错,把代码贴出来看看
你总是把datagrid1的e用到datagrid2,这个update是接受的datagrid1的事件吧,datagrid1和datagrid2的事件必须分开写
.