7 个解决方案
#1
首先在前台加入如下的代码(添加一列)
<asp:TemplateColumn>
<ItemTemplate>
<input type="hidden" id="SelectedID" runat="server"
value='<%# Container.ItemIndex%>' NAME="SelectedID"/>
<asp:CheckBox ID="chkExport" Runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
为页面加入一个按钮(名字叫多选),为之添加以下代码
foreach(DataGridItem di in this.DataGrid1.Items)
{
if(((CheckBox)di.FindControl("chkExport")).Checked==true)
{
this.Label1.Text+=this.DataGrid1.DataKeys[int.Parse(((HtmlInputHidden)di.FindControl("SelectedID")).Value)]+"<br>";
}
}
点击了这个按钮就在label的位置显示了所有选择的项目对应的数据表主键的值,可以利用这个值进行一些数据库的操作
比如:
string s="";
foreach(DataGridItem di in this.DataGrid1.Items)
{
if(((CheckBox)di.FindControl("chkExport")).Checked==true)
{
s+=this.DataGrid1.DataKeys[int.Parse(((HtmlInputHidden)di.FindControl("SelectedID")).Value)]+",";
}
}
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
SqlCommand comm=new SqlCommand("delete from tb1 where ID in (",conn);
comm.CommandText+=s.Substring(0,s.Length-1)+")";//删除最后一个逗号
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
SetBind();
你可以再添加两个按钮,一个叫选择所有,一个叫取消所有选择,为之分别添加如下代码
foreach(DataGridItem di in this.DataGrid1.Items)
{
((CheckBox)di.FindControl("chkExport")).Checked=true;
}
foreach(DataGridItem di in this.DataGrid1.Items)
{
((CheckBox)di.FindControl("chkExport")).Checked=false;
}
<asp:TemplateColumn>
<ItemTemplate>
<input type="hidden" id="SelectedID" runat="server"
value='<%# Container.ItemIndex%>' NAME="SelectedID"/>
<asp:CheckBox ID="chkExport" Runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
为页面加入一个按钮(名字叫多选),为之添加以下代码
foreach(DataGridItem di in this.DataGrid1.Items)
{
if(((CheckBox)di.FindControl("chkExport")).Checked==true)
{
this.Label1.Text+=this.DataGrid1.DataKeys[int.Parse(((HtmlInputHidden)di.FindControl("SelectedID")).Value)]+"<br>";
}
}
点击了这个按钮就在label的位置显示了所有选择的项目对应的数据表主键的值,可以利用这个值进行一些数据库的操作
比如:
string s="";
foreach(DataGridItem di in this.DataGrid1.Items)
{
if(((CheckBox)di.FindControl("chkExport")).Checked==true)
{
s+=this.DataGrid1.DataKeys[int.Parse(((HtmlInputHidden)di.FindControl("SelectedID")).Value)]+",";
}
}
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
SqlCommand comm=new SqlCommand("delete from tb1 where ID in (",conn);
comm.CommandText+=s.Substring(0,s.Length-1)+")";//删除最后一个逗号
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
SetBind();
你可以再添加两个按钮,一个叫选择所有,一个叫取消所有选择,为之分别添加如下代码
foreach(DataGridItem di in this.DataGrid1.Items)
{
((CheckBox)di.FindControl("chkExport")).Checked=true;
}
foreach(DataGridItem di in this.DataGrid1.Items)
{
((CheckBox)di.FindControl("chkExport")).Checked=false;
}
#2
楼上的对头。
晚来一步。
晚来一步。
#3
private void CheckBoxShowIn()//使已获取数据的CheckBox标记为已选
{
string str = select.Text;
string[] arr = str.Split(new char[] {','});
foreach (DataGridItem It in MyDataGrid.Items)
{
for(int i=0;i<arr.Length;i++)
{
CheckBox SelectChkBxItem = (CheckBox) It.FindControl ("SeleteThis");
if (arr[i]==((Label) It.FindControl ("Store")).Text)
{
SelectChkBxItem.Checked=true;
}
}
}
}
private void CheckBoxShowOut()//获得选取行的数据
{
this.select.Text="";
foreach (DataGridItem i in MyDataGrid.Items)
{
CheckBox SelectChkBxItem = (CheckBox) i.FindControl ("SeleteThis");
if (SelectChkBxItem.Checked)
{
this.select.Text += ","+((Label) i.FindControl ("Store")).Text.ToString();
}
}
if(this.select.Text.Length>1)
{
this.select.Text=select.Text.Substring(1);
}
}
{
string str = select.Text;
string[] arr = str.Split(new char[] {','});
foreach (DataGridItem It in MyDataGrid.Items)
{
for(int i=0;i<arr.Length;i++)
{
CheckBox SelectChkBxItem = (CheckBox) It.FindControl ("SeleteThis");
if (arr[i]==((Label) It.FindControl ("Store")).Text)
{
SelectChkBxItem.Checked=true;
}
}
}
}
private void CheckBoxShowOut()//获得选取行的数据
{
this.select.Text="";
foreach (DataGridItem i in MyDataGrid.Items)
{
CheckBox SelectChkBxItem = (CheckBox) i.FindControl ("SeleteThis");
if (SelectChkBxItem.Checked)
{
this.select.Text += ","+((Label) i.FindControl ("Store")).Text.ToString();
}
}
if(this.select.Text.Length>1)
{
this.select.Text=select.Text.Substring(1);
}
}
#4
DataGrid在模板列里面加checkbox
#5
int intI;
intI=dgGetData.Items.Count ;
int intTemp=0;
object[] strID=new object[intI];
for(int i=0;i<intI;i++)
{
if(((CheckBox)dgGetData.Items[i].Cells[0].FindControl("chkData")).Checked==true)
{
//提取作者编号
strID[intTemp]=((CheckBox)dgGetData.Items[i].Cells[0].FindControl("chkData")).Text;
intTemp=intTemp+1;
}
else
{
//暂不处理
}
}
intI=dgGetData.Items.Count ;
int intTemp=0;
object[] strID=new object[intI];
for(int i=0;i<intI;i++)
{
if(((CheckBox)dgGetData.Items[i].Cells[0].FindControl("chkData")).Checked==true)
{
//提取作者编号
strID[intTemp]=((CheckBox)dgGetData.Items[i].Cells[0].FindControl("chkData")).Text;
intTemp=intTemp+1;
}
else
{
//暂不处理
}
}
#6
DataGrid在模板列里面加checkbox
关键句 CType(DataGrid1.Items(ifor).Cells(0).Controls(1), CheckBox)
-------------------
这个不难,难在同时实现翻页和删除功能,那时须引进一个计数器
关键句 CType(DataGrid1.Items(ifor).Cells(0).Controls(1), CheckBox)
-------------------
这个不难,难在同时实现翻页和删除功能,那时须引进一个计数器
#7
我上面的是VB.NET版
#1
首先在前台加入如下的代码(添加一列)
<asp:TemplateColumn>
<ItemTemplate>
<input type="hidden" id="SelectedID" runat="server"
value='<%# Container.ItemIndex%>' NAME="SelectedID"/>
<asp:CheckBox ID="chkExport" Runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
为页面加入一个按钮(名字叫多选),为之添加以下代码
foreach(DataGridItem di in this.DataGrid1.Items)
{
if(((CheckBox)di.FindControl("chkExport")).Checked==true)
{
this.Label1.Text+=this.DataGrid1.DataKeys[int.Parse(((HtmlInputHidden)di.FindControl("SelectedID")).Value)]+"<br>";
}
}
点击了这个按钮就在label的位置显示了所有选择的项目对应的数据表主键的值,可以利用这个值进行一些数据库的操作
比如:
string s="";
foreach(DataGridItem di in this.DataGrid1.Items)
{
if(((CheckBox)di.FindControl("chkExport")).Checked==true)
{
s+=this.DataGrid1.DataKeys[int.Parse(((HtmlInputHidden)di.FindControl("SelectedID")).Value)]+",";
}
}
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
SqlCommand comm=new SqlCommand("delete from tb1 where ID in (",conn);
comm.CommandText+=s.Substring(0,s.Length-1)+")";//删除最后一个逗号
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
SetBind();
你可以再添加两个按钮,一个叫选择所有,一个叫取消所有选择,为之分别添加如下代码
foreach(DataGridItem di in this.DataGrid1.Items)
{
((CheckBox)di.FindControl("chkExport")).Checked=true;
}
foreach(DataGridItem di in this.DataGrid1.Items)
{
((CheckBox)di.FindControl("chkExport")).Checked=false;
}
<asp:TemplateColumn>
<ItemTemplate>
<input type="hidden" id="SelectedID" runat="server"
value='<%# Container.ItemIndex%>' NAME="SelectedID"/>
<asp:CheckBox ID="chkExport" Runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
为页面加入一个按钮(名字叫多选),为之添加以下代码
foreach(DataGridItem di in this.DataGrid1.Items)
{
if(((CheckBox)di.FindControl("chkExport")).Checked==true)
{
this.Label1.Text+=this.DataGrid1.DataKeys[int.Parse(((HtmlInputHidden)di.FindControl("SelectedID")).Value)]+"<br>";
}
}
点击了这个按钮就在label的位置显示了所有选择的项目对应的数据表主键的值,可以利用这个值进行一些数据库的操作
比如:
string s="";
foreach(DataGridItem di in this.DataGrid1.Items)
{
if(((CheckBox)di.FindControl("chkExport")).Checked==true)
{
s+=this.DataGrid1.DataKeys[int.Parse(((HtmlInputHidden)di.FindControl("SelectedID")).Value)]+",";
}
}
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
SqlCommand comm=new SqlCommand("delete from tb1 where ID in (",conn);
comm.CommandText+=s.Substring(0,s.Length-1)+")";//删除最后一个逗号
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
SetBind();
你可以再添加两个按钮,一个叫选择所有,一个叫取消所有选择,为之分别添加如下代码
foreach(DataGridItem di in this.DataGrid1.Items)
{
((CheckBox)di.FindControl("chkExport")).Checked=true;
}
foreach(DataGridItem di in this.DataGrid1.Items)
{
((CheckBox)di.FindControl("chkExport")).Checked=false;
}
#2
楼上的对头。
晚来一步。
晚来一步。
#3
private void CheckBoxShowIn()//使已获取数据的CheckBox标记为已选
{
string str = select.Text;
string[] arr = str.Split(new char[] {','});
foreach (DataGridItem It in MyDataGrid.Items)
{
for(int i=0;i<arr.Length;i++)
{
CheckBox SelectChkBxItem = (CheckBox) It.FindControl ("SeleteThis");
if (arr[i]==((Label) It.FindControl ("Store")).Text)
{
SelectChkBxItem.Checked=true;
}
}
}
}
private void CheckBoxShowOut()//获得选取行的数据
{
this.select.Text="";
foreach (DataGridItem i in MyDataGrid.Items)
{
CheckBox SelectChkBxItem = (CheckBox) i.FindControl ("SeleteThis");
if (SelectChkBxItem.Checked)
{
this.select.Text += ","+((Label) i.FindControl ("Store")).Text.ToString();
}
}
if(this.select.Text.Length>1)
{
this.select.Text=select.Text.Substring(1);
}
}
{
string str = select.Text;
string[] arr = str.Split(new char[] {','});
foreach (DataGridItem It in MyDataGrid.Items)
{
for(int i=0;i<arr.Length;i++)
{
CheckBox SelectChkBxItem = (CheckBox) It.FindControl ("SeleteThis");
if (arr[i]==((Label) It.FindControl ("Store")).Text)
{
SelectChkBxItem.Checked=true;
}
}
}
}
private void CheckBoxShowOut()//获得选取行的数据
{
this.select.Text="";
foreach (DataGridItem i in MyDataGrid.Items)
{
CheckBox SelectChkBxItem = (CheckBox) i.FindControl ("SeleteThis");
if (SelectChkBxItem.Checked)
{
this.select.Text += ","+((Label) i.FindControl ("Store")).Text.ToString();
}
}
if(this.select.Text.Length>1)
{
this.select.Text=select.Text.Substring(1);
}
}
#4
DataGrid在模板列里面加checkbox
#5
int intI;
intI=dgGetData.Items.Count ;
int intTemp=0;
object[] strID=new object[intI];
for(int i=0;i<intI;i++)
{
if(((CheckBox)dgGetData.Items[i].Cells[0].FindControl("chkData")).Checked==true)
{
//提取作者编号
strID[intTemp]=((CheckBox)dgGetData.Items[i].Cells[0].FindControl("chkData")).Text;
intTemp=intTemp+1;
}
else
{
//暂不处理
}
}
intI=dgGetData.Items.Count ;
int intTemp=0;
object[] strID=new object[intI];
for(int i=0;i<intI;i++)
{
if(((CheckBox)dgGetData.Items[i].Cells[0].FindControl("chkData")).Checked==true)
{
//提取作者编号
strID[intTemp]=((CheckBox)dgGetData.Items[i].Cells[0].FindControl("chkData")).Text;
intTemp=intTemp+1;
}
else
{
//暂不处理
}
}
#6
DataGrid在模板列里面加checkbox
关键句 CType(DataGrid1.Items(ifor).Cells(0).Controls(1), CheckBox)
-------------------
这个不难,难在同时实现翻页和删除功能,那时须引进一个计数器
关键句 CType(DataGrid1.Items(ifor).Cells(0).Controls(1), CheckBox)
-------------------
这个不难,难在同时实现翻页和删除功能,那时须引进一个计数器
#7
我上面的是VB.NET版