[100分求]一个DataGrid里面的checkbox如何跟据另一个表里面的值进行打勾呢?
求教:一个DataGrid显示内容中每个列有一个checkbox, 要实现跟另一个dataset里面的数据进行打勾[如ds里面有对应的值就打勾]
如何实现啊?
我想的:在datagrid里面的ItemDataBound操作,先读另一个表的值,进行判断,但是如何写判断语句就不知道如何写了,请教了:)
------解决方案--------------------占位,不难,我看看先。
------解决方案--------------------for(int i=0;i <DataGrid1.rows.count;i++)
{
checkbox cbSel=(checkbox)DataGrid.rows[i].FindControl( "checkbox控件ID ");
if(dataset.table[0].row[i][ "你要取值的column "]).ToString()== "你要比较的值 "
{
cbSel.Checked=true;
}
}
------解决方案--------------------这个东西要放在DataGrid绑定的方法或其子方法中
dataset也要在那里给填充。
------解决方案--------------------在ItemCreated事件里面实现,代码类似
protected void DataGrid1_ItemCreated(object sender, DataGridItemEventArgs e)
{
CheckBox cb = e.Item.FindControl( "CheckBox_Test ") as CheckBox;
if (cb != null)
cb.Checked = this.CheckSomething();
}
其中this.CheckSomething() 是你自己写的用来判断是否存在的,
具体怎么判断,你可以把需要判断的数据都加载进DataSet,然后在DataSet里判断。
------解决方案-------------------- <asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox ID= "chk1 " runat= "server " Checked= ' <%#Eval( "id ").ToString()== "1 "%> ' />
</ItemTemplate>
</asp:TemplateColumn>
------解决方案--------------------用GridView的CheckBoxField很容易就实现了
------解决方案--------------------Iceguy(Snow) ( ) 信誉:100 Blog 加为好友 2007-4-4 23:07:54 得分: 0
for(int i=0;i <DataGrid1.rows.count;i++)
{
checkbox cbSel=(checkbox)DataGrid.rows[i].FindControl( "checkbox控件ID ");
if(dataset.table[0].row[i][ "你要取值的column "]).ToString()== "你要比较的值 "
{
cbSel.Checked=true;
}
}
=============================================
正解
------解决方案--------------------//这里我要取一个DataGrid里面的一行的一个值和ds1里面的值,但我不会写了
//向各位请教
//取datagrid1里面某个单元格里面的值:
this.DataGrid1.Items[i].Cells[j].Text
------解决方案--------------------hy_lihuan(我想早恋,可是已经晚了) ( ) 信誉:98 Blog 加为好友 2007-04-05 15:36:13 得分: 0
再写一个方法,用foreach把DataGrid的值和Ds的值进行判断,有就chk=true;,这样会不会比在ItemDataBound里面操作快点呢?
会,你如果把两个数据表全部读取出来然后比较,肯定会比在ItemDataBound中快,因为ItemDataBound里面有多少条数据你就需要连接几次数据库
------------
如果DataBound的是DataSet呢? 何来连接几次数据库……
------解决方案--------------------求教:一个DataGrid显示内容中每个列有一个checkbox, 要实现跟另一个dataset里面的数据进行打勾[如ds里面有对应的值就打勾]
首先LZ得确定DataGrid上面得确定一个主键和dataset中的一列相对应,可以考虑设置DataKeyField;
如:
<asp:DataGrid .... DataKeyField= "id ">
然后cs里面:
foreach(DataGridItem item in dg1.Items)
{
CheckBox chk= (CheckBox)item.FindControl( "cbox_isok ");
for(int j=0;j <ds1.Tables[ "ru "].Columns;j++)
{
string s=this.DataGrid1.DataKeys[j].ToString();
if(s==ds1.Tables[ "ru "].Rows[i][ "物料名 "])
{
chk.Checked=true;