string strsql="select * from gain";
string keyid="gain_id";
sqlconn = new SqlConnection(connstr);
sqlcomd = new SqlCommand(strsql, sqlconn);
sqlconn.Open();
GridView.DataSource = sqlcomd.ExecuteReader(CommandBehavior.CloseConnection);
GridView.DataKeyNames = new string[] { keyid };
GridView.DataBind();
sqlconn.Close();
这样写的话会讲gain表中所有的数据项都显示在gridview中,但我现在只要求显示一部分,例如只显示gain_name,gain_num.该怎么样实现呢?不能够用
<asp:BoundField datafield="gain_name" headertext="获取名称">
<HeaderStyle width="90px"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
因为gridview会绑定到不同的表,不能够写死了!该怎么办呢?
string keyid="gain_id";
sqlconn = new SqlConnection(connstr);
sqlcomd = new SqlCommand(strsql, sqlconn);
sqlconn.Open();
GridView.DataSource = sqlcomd.ExecuteReader(CommandBehavior.CloseConnection);
GridView.DataKeyNames = new string[] { keyid };
GridView.DataBind();
sqlconn.Close();
这样写的话会讲gain表中所有的数据项都显示在gridview中,但我现在只要求显示一部分,例如只显示gain_name,gain_num.该怎么样实现呢?不能够用
<asp:BoundField datafield="gain_name" headertext="获取名称">
<HeaderStyle width="90px"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
因为gridview会绑定到不同的表,不能够写死了!该怎么办呢?
不要自动生成列,逐个添加所需列。
<Columns>
<asp:BoundColumn DataField="tbid" Visible="false" ItemStyle-Width="5%" ItemStyle-ForeColor="#000000" ItemStyle-BorderColor="#666666" ItemStyle-Font-Bold="true" ItemStyle-BackColor="buttonface" SortExpression="tbid" HeaderText="流水号"> </asp:BoundColumn>
<asp:BoundColumn DataField="JobNo" ItemStyle-Width="25%" SortExpression="JobNo" ItemStyle-ForeColor="#333366" ItemStyle-Font-Bold="true" HeaderText="流水号"> </asp:BoundColumn>
<asp:BoundColumn DataField="JobType" ItemStyle-Width="20%" ItemStyle-ForeColor="#333366" SortExpression="JobType" HeaderText="货代提单号"> </asp:BoundColumn>
<asp:BoundColumn DataField="BookingDate" DataFormatString="{0:d}" ItemStyle-Width="20%" ItemStyle-ForeColor="#333366" SortExpression="BookingDate" HeaderText="订舱日期"> </asp:BoundColumn>
<asp:BoundColumn DataField="BookingDate" DataFormatString="{0:d}" ItemStyle-Width="20%" ItemStyle-ForeColor="#333366" SortExpression="BookingDate" HeaderText="处理日期"> </asp:BoundColumn>
<asp:BoundColumn DataField="SpGroup" ItemStyle-Width="10%" ItemStyle-ForeColor="#333366" SortExpression="SpGroup" HeaderText="区域"> </asp:BoundColumn>
</columns>
</asp:datagrid>
你这样实现我也知道!但是你这样实现的话gridview就只能够与一个数据库进行绑定,这不是我想要的结果!我现在要的效果是:当点击botton1时在gridview中显示botton1数据表中的内容,当点击botton2时在gridview中显示botton2数据表中的内容。同时要将每个表中的主键读取出来但不显示在gridview中!
楼上zhoumins(zm) 说的不要自动生成列,逐个添加所需列,是指用antiking(结构是值类型)那样的方法增加吗?
楼上cdsun() 说的列隐藏是不是指 Visible="false" ?
如果是这样的话好象行不通的!
然后在后台,按钮的click事件中,分别对SqlDataSource进行绑定。还有不显示某些列的方法是,创建GridView后,然后编辑列,出现对话框中不勾选自动生成列。
将不显示的主键移除就可以了。
因为我要将两个SqlDataSource中涉及到的表中的主键都不显示!
在后台动态的加入列,用GridView.Columns.Add(),加入你想要加入的列就可以了!
haojian(鸡急了也会飞) :你说的在编辑列里将主键列移除在我这里行不通的!