日期:2014-05-20  浏览次数:20556 次

嵌套的datagrid 问题??
做孟子的例子,嵌套的datagrid,但是在后台里找不到第二个datagrid2对象,使用datagrid2会告诉我未定义,不知道为什么?
代码:
<asp:DataGrid   id= "DataGrid1 "   BorderColor= "#0099FF "   runat= "server "   ShowHeader= "False "   Width= "470px "
CellPadding= "0 "   CellSpacing= "0 "   AutoGenerateColumns= "False "   BorderWidth= "2px ">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<TABLE   cellSpacing= "0 "   cellPadding= "0 "   width= "100% "   border= "0 ">
<TR>
<TD   bgColor= "#FF6600 "> <B> 订单号:
<%#   DataBinder.Eval(Container.DataItem,   "OrderID ")   %>
</B>
</TD>
</TR>
<TR>
<TD   align= "right ">
<asp:DataGrid   id=DataGrid2   runat= "server "   AutoGenerateColumns= "False "   BorderColor= "#33FF33 "   DataKeyField= "OrderID "   DataSource= ' <%#   Ctype(Container.DataItem,DataRowView).CreateChildView( "OrderRelation ")   %> '>
<HeaderStyle   Font-Bold= "True "   ForeColor= "#CC0066 "   BackColor= "#FFCCFF "> </HeaderStyle>
<Columns>
<asp:BoundColumn   Visible= "False "   DataField= "OrderID "   ReadOnly= "True "> </asp:BoundColumn>
<asp:TemplateColumn   HeaderText= "产品名称 ">
<HeaderStyle   Width= "300px "> </HeaderStyle>
<ItemTemplate>
<%#   DataBinder.Eval(Container.DataItem,   "ProductName ")   %>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn   DataField= "UnitPrice "   HeaderText= "单价 "> </asp:BoundColumn>
<asp:BoundColumn   DataField= "Quantity "   HeaderText= "数量 "> </asp:BoundColumn>
<asp:BoundColumn   DataField= "Discount "   HeaderText= "折扣 "> </asp:BoundColumn>
</Columns>
</asp:DataGrid> </TD>
</TR>
</TABLE>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>

------解决方案--------------------
没看到你的代码。

private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if ( ( e.Item.ItemType != ListItemType.Header ) && ( e.Item.ItemType != ListItemType.Footer ) )
{
DataGrid temp = (DataGrid)e.Item.FindControl( "DataGrid2 ");
string sqltext = "select * from test where NameClass= '1 ' ";
DB.DBControls DBC = new DB.DBControls();
DataSet MyDataSet = DBC.SetTable( "test1 ", sqltext);
temp.DataSource = MyDataSet.Tables[ "test1 "];
temp.DataBind();
temp.Columns[0].Visible = false;

}
}


以上是我的一段代码。不知道对你有否帮助!
------解决方案--------------------
关键的就这句话!