嵌套的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;
}
}
以上是我的一段代码。不知道对你有否帮助!
------解决方案--------------------关键的就这句话!