一个页面里能否同时显示2个DATAGRID,能就给个完整的例子?
肯定能啊
,相同数据集,不同都可以
string sql="select 1 as t1,'小猫' as t2 from dual";
DataBase Base=new DataBase();//数据操作类,自己写的方法
DataSet ds=new DataSet();
string ErrMess;
bool srt=Base.ExecuteSql(sql,out ds,out ErrMess);
if(srt)
{
DataGrid1.DataSource = ds;//邦定同一个数据集
DataGrid1.DataBind();
DataGrid2.DataSource = ds;//邦定同一个数据集
DataGrid2.DataBind();
}
------------------------------
成功的例子
aspx:
<ASP:DataGrid id="MyList"
.
.
DataKeyField="question_id">
<Columns>
<asp:BoundColumn ItemStyle-Width="20%" HeaderText="发言人" DataField="restore_name">
<HeaderStyle Wrap="False" HorizontalAlign="Left" VerticalAlign="Middle"/>
<ItemStyle Wrap="False" HorizontalAlign="Left" VerticalAlign="Top"/>
</asp:BoundColumn>
<asp:templatecolumn ItemStyle-Width="70%" ItemStyle-Height="100" HeaderText="发言內容">
<itemtemplate>
<table width="100%" height="100"><tr><td align=left valign=top>
<%# SubStr(DataBinder.Eval(Container.DataItem,"restore_content").ToString())%>
</td></tr></table>
</itemtemplate>
</asp:templatecolumn>
</Columns>
</asp:DataGrid>
<ASP:DataGrid id="MyList2"
.
.
DataKeyField="restore_id">
<Columns>
<asp:BoundColumn ItemStyle-Width="20%" HeaderText="回複人" DataField="restore_name"/>
<asp:BoundColumn ItemStyle-Width="10%" HeaderText="回複時間" DataField="restore_date" DataFormatString="{0:yyyy-MM-dd}"/>
</Columns>
</asp:DataGrid>
cs:
DataView CreateDataSource()
{
string nowDSN=ConfigurationSettings.AppSettings["appeal"];
SqlConnection myConnection=new SqlConnection(nowDSN);
SqlDataAdapter myCommand2=new SqlDataAdapter("SELECT * FROM appeal_restore WHERE question_id='"+Request.Params["question_id"]+"'", myConnection);
DataSet ds2 = new DataSet();
myCommand2.Fill(ds2, "appeal_restore");
if (ds2.Tables["appeal_restore"].Rows.Count > 0)
{
dr2 = ds2.Tables["appeal_restore"].Rows[0];
}
return ds2.Tables["appeal_restore"].DefaultView;
myConnection.Close();
DataBind();
}
DataView CreateDataSource2()
{
string nowDSN=ConfigurationSettings.AppSettings["appeal"];
SqlConnection myConnection=new SqlConnection(nowDSN);
SqlDataAdapter myCommand3=new SqlDataAdapter("SELECT * FROM appeal_question WHERE question_id='"+Request.Params["question_id"]+"'", myConnection);
DataSet ds3 = new DataSet();
myCommand3.Fill(ds3, "appeal_question");
if (ds3.Tables["appeal_question"].Rows.Count > 0)
{
dr3 = ds3.Tables["appeal_question"].Rows[0];
}
return ds3.Tables["appeal_question"].DefaultView;
myConnection.Close();
DataBind();
}
void DataBind()
{
DataView source=CreateDataSource();
DataView source2=CreateDataSource2();
if(!IsPostBack)
{
}
MyList.DataSource = source;
MyList.DataBind();
MyList2.DataSource = source2;
MyList2.DataBind();
}