代码:
<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False" DataKeyField="cid" GridLines="Horizontal">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<table>
<tr>
<td>&nbsp;&nbsp;<%#DataBinder.Eval(Container.DataItem,"cname")%></td>
</tr>
<tr>
<td>
<asp:DataGrid ID="DataGrid2" Runat="server" GridLines="Horizontal" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
&nbsp;<a href='newsdetails.aspx?nid=<%# DataBinder.Eval(Container.DataItem, "nid") %>' Target="_blank"><%# DataBinder.Eval(Container.DataItem, "title")%></a><font style="font-size: 7pt">&nbsp;<%# DataBinder.Eval(Container.DataItem, "addtime", "({0})") %></font>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</td>
</tr>
<tr>
<td align="right"><a href='newslist.aspx?cid=<%# DataBinder.Eval(Container.DataItem,"cid") %>'>更多...</a>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>我想给DataGrid2绑定数据请问如何做?

解决方案 »

  1.   

    CTYPE(E。ITEM。CELLS(0)。FINDCONTROLS(“DATAGRID2”),DATAGRID)。DATASOURCE=
    CTYPE(E。ITEM。CELLS(0)。FINDCONTROLS(“DATAGRID2”),DATAGRID)。DATABIND()
      

  2.   

    我这样做了,可是出现错误了:
    将对象引用设置到对象的实例。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
    DataSet dsUserOrder;
    String sProcName ="sp_getNews";
    SqlConnection sqlConn = new SqlConnection(connstr);
    SqlCommand sqlComm = new SqlCommand(sProcName, sqlConn);
    sqlComm.CommandType = CommandType.StoredProcedure;
    sqlConn.Open();
    dsUserOrder = new DataSet();
    SqlDataAdapter daUserOrder = new SqlDataAdapter(sqlComm);
    daUserOrder.Fill(dsUserOrder,"mynews_news");
    sqlConn.Close();
    dg2.DataSource = dsUserOrder.Tables["mynews_news"].DefaultView;
    dg2.DataBind();
    dg2.DataSource = ds.Tables["mynews_news"].DefaultView;
      

  3.   

    不好意思,上面应该是:SqlDataAdapter da = new ..但还是错误的啊?
      

  4.   

    findcontrols是没错的,提示出的错应该是你的sql连接和读取这部分,我不明白,为什么还要用SqlCommand,直接用你下面的SqlDataAdapter不就行了吗?
      

  5.   

    我另外单独又建了个DataGrid3 ,用我以上的代码连接数据库并没有问题,数据正常显示啊;
        问题是找不到DataGrid2啊,  我是在Datagird1事件里写上面的代码的;
    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {   
    DataGrid dg =(DataGrid)e.Item.Cells[0].FindControl("DataGrid2");
    //String cid = DataGrid1.DataKeys[(int)e.Item.ItemIndex].ToString();
    DbModule db =new DbModule(connstr);
    DataSet dataset = new DataSet();
    dataset = db.RunProcedure("sp_getNews",new IDataParameter[]{},"mynews_news");
                dg.DataSource = dataset.Tables["mynews_news"].DefaultView;
    dg.DataBind();
    }
      

  6.   

    DataSet dsUserOrder;
    String sProcName ="sp_getNews";
    SqlConnection sqlConn = new SqlConnection(connstr);
    SqlCommand sqlComm = new SqlCommand(sProcName, sqlConn);
    sqlComm.CommandType = CommandType.StoredProcedure;
    sqlConn.Open();
    dsUserOrder = new DataSet();
    SqlDataAdapter daUserOrder = new SqlDataAdapter(sqlComm);SqlDataAdapter .selectcommand=sqlComm 
    daUserOrder.Fill(dsUserOrder,"mynews_news");
    sqlConn.Close();
    dg2.DataSource = dsUserOrder.Tables["mynews_news"].DefaultView;
    dg2.DataBind();
    dg2.DataSource = ds.Tables["mynews_news"].DefaultView;