关于gridview的一些问题
1、如何通过dataset与之后台代码绑定
2、如何隐藏主键与dataset中的datatable一些不想显示的值,同时如何客户选择(每一行都加一个checkbox列时)如何得到这个主键?
最好有示例代码
[解决办法]
綁定gridview的方法和datagrid方法一樣,隱藏,而且是動態隱藏行也是沒問題的,this.GridView1.Columns[2].Visible = false; 你指定的列設為false就好
[解决办法]
gridview.DataSource = dataset;
gridview.DataBind();
不想显示的可以设置gridview的datakey
[解决办法]
1.如何通过dataset与之后台代码绑定
回答:
GridView1.DataSource=(你要绑定的DataSet);
GridView1.DataBind();
2.如何隐藏主键与dataset中的datatable一些不想显示的值
回答:
<asp:GridView ID= "Gridview1 " AutoGenerateColumns= "False " runat= "server " DataKeyNames= "Id " >
<Columns>
<asp:BoundField DataField= "Name " HeaderText= "姓名 " />
<asp:BoundField DataField= "LoginId " HeaderText= "帐号 " />
//在此定义你想要显示的列,要隐藏的列不定义
</Columns>
</asp:GridView>
当然这个方法是在设计的时候就需要知道哪些列该显示哪些列该隐藏,如果需要在运行的时候动态隐藏某些列,那么可以:
GridView1.Columns[5].Visible = false; //隐藏第6列,注意列的下标从0开始计数
3.如何客户选择(每一行都加一个checkbox列时)如何得到这个主键?
回答:
创建模板列checkbox,可以通过后台代码遍历各行的checkbox是否选中,如果选中则取出该checkbox所在数据行的id:
<asp:GridView ID= "Gridview1 " AutoGenerateColumns= "False " runat= "server " DataKeyNames= "Id " >
<Columns>
<ItemTemplate>
<asp:Checkbox runat= "server " id= "Checkbox1 "/>
</ItemTemplate>
<asp:BoundField DataField= "Name " HeaderText= "姓名 " />
<asp:BoundField DataField= "LoginId " HeaderText= "帐号 " />
</Columns>
</asp:GridView>
具体可参考:http://www.asp.net/learn/dataaccess/tutorial52cs.aspx?tabid=63
当然为了提高性能,对选择列最好不要使用后台代码操作,而是要使用javascript来操作,通过javascript还可以对选择列添加“全选”功能等,网上资料很多,你自己查查。
接分!
[解决办法]
asp:GridView ID= "GridView1 " runat= "server " OnRowCancelingEdit= "GridView1_RowCancelingEdit "
OnRowDeleting= "GridView1_RowDeleting " OnRowEditing= "GridView1_RowEditing " OnRowUpdating= "GridView1_RowUpdating "
Width= "635px " AutoGenerateColumns= "False " Font-Size= "Smaller " style= "direction: ltr; line-height: normal; font-family: 宋体; letter-spacing: normal; text-align: left " AllowPaging= "True " AllowSorting= "True " CellPadding= "4 " ForeColor= "#333333 " GridLines= "None " OnRowDataBound= "GridView1_RowDataBound " >
<RowStyle ForeColor= "#333333 " BackColor= "#F7F6F3 " />
<SelectedRowStyle BackColor= "#E2DED6 " Font-Bold= "True " ForeColor= "#333333 " />
<PagerStyle BackColor= "#284775 " ForeColor= "White " HorizontalAlign= "Center " />
<HeaderStyle BackColor= "#5D7B9D " Font-Bold= "True " ForeColor= "White " />
<FooterStyle BackColor= "#5D7B9D " Font-Bold= "True " ForeColor= "White " />
<EditRowStyle BackColor= "#999999 " />
<AlternatingRowStyle BackColor= "White " ForeColor= "#284775 " />
<Columns>
<asp:BoundField DataField= "bh " HeaderText= "编号 " ReadOnly= "true " />
<asp:BoundField DataField= "XM " HeaderText= "姓名 " />
<asp:BoundField DataField= "csrq " HeaderText= "出生日期 " />
<asp:BoundField DataField= "ygbh " HeaderText= "员工编号 " />
<asp:BoundField DataField= "xb " HeaderText= "性别 " />
<asp:BoundField DataField= "bm " HeaderText= "部门 " />
<asp:BoundField DataField= "xl " HeaderText= "学历 " />
<asp:BoundField DataField= "bz " HeaderText= "备注 " />
<asp:CommandField HeaderText= "选择 " ShowSelectButton= "true " />
<asp:CommandField HeaderText= "编辑 " ShowEditButton= "true " />
<asp:CommandField HeaderText= "删除 " ShowDeleteButton= "true " />
</Columns>
</asp:GridView>
SqlConnection con = new SqlConnection( "Data Source=(local);DataBase=yyzlgl;Uid=sa;Pwd=;Pooling=true ");
SqlDataAdapter Da = new SqlDataAdapter( "SELECT bh,xm,csrq,xb,ygbh,bm,xl,bz FROM t_yg_xx ", con);
DataSet Ds = new DataSet();
Da.Fill(Ds, "t_yg_xx ");
GridView1.DataSource = Ds;
GridView1.DataBind();
con.Close();
[解决办法]
将身份证号做为gridview的DataKeyNames(主键):
<asp:GridView ID= "Gridview1 " AutoGenerateColumns= "False " runat= "server " DataKeyNames= "身份证号号码的列名 " >
<Columns>
<asp:BoundField DataField= "Name " HeaderText= "姓名 " />
<asp:BoundField DataField= "LoginId " HeaderText= "帐号 " />
//在此定义你想要显示的列,要隐藏的列不定义
</Columns>
</asp:GridView>
这样你不用去可意隐藏身份证号码,只要不显示的创建该列,该列就不会显示,并且可以通过DataKeyNames来获得身份证号码,获取主键的代码:
string card = Gridview1.DataKeys[行号][0] as string;
if(card!=null)
{
//对获取的身份证号码进行操作
}