关于在Repeater中批量删除的问题
我在网上找了下方法,基本想到思想,可实际操作碰到一些问题,麻烦高手帮忙看一下.
前台:
<asp:repeater id= "TestList " runat= "server ">
<ItemTemplate>
<tr>
<td height= "24 " align= "center "> <asp:checkbox id= "selectid " runat= "server "> </asp:checkbox> <INPUT id= "idname " type= "hidden " name= "fieldname " runat= "server " value= ' <%# DataBinder.Eval(Container.DataItem, "ID ") %> '> </td>
<td> .. <td>
...
后台:
private void Button1_Click(object sender, System.EventArgs e)
{
string sID= " ";
foreach (RepeaterItem item in this.TestList.Items)
{
CheckBox chkbox1 = (CheckBox)item.FindControl( "selectid ");
if (chkbox1.Checked == true)
{
sID += ((HtmlInputHidden)item.FindControl( "fieldname ")).Value + ', ';
}
....
}
}
现在的问题是程序运行到foreach后不会执行里面的代码,而直接跳出,但明明这个Repeater是有内容的,请问问题出在哪?
------解决方案--------------------private void del_Click(object sender, System.EventArgs e)
{
int index;
index=Session[ "module_authority "].ToString().IndexOf( "80 ");
if(index> 0)
{
string ID= " ",Selected_Date= " ";
foreach(RepeaterItem item in this.Repeater.Items)
{
CheckBox ck=(CheckBox)item.FindControl( "checkbox_del ");
if(ck.Checked)
{
HtmlInputHidden inputhidden = (HtmlInputHidden)item.FindControl( "SelectedID ");
ID +=inputhidden.Value.Trim()+ ", ";
HtmlInputHidden inputhidden2 = (HtmlInputHidden)item.FindControl( "Selected_Date ");
Selected_Date +=inputhidden2.Value.Trim()+ ", ";
}
}
if(ID.Length == 0)
this.Page.RegisterStartupScript( " ", " <script> alert( '没有选定删除项 ');window.location.href=window.location.href; </script> ");
else
{
ID = ID.Remove(ID.Length - 1,1);
Selected_Date = Selected_Date.Remove(Selected_Date.Length-1,1);
string sql_del = "delete from Files where ID in( "+ID+ ") ";
string [] Arr_Id = ID.Split( ', ');
for(int i=0;i <Arr_Id.Length;i++)
{
string strsql= "select FileName from Files where id = "+Arr_Id[i];
Con.Open();
SqlCommand cmd =new SqlCommand(strsql,Con);
SqlDataReader dr1 =cmd.ExecuteReader();
if(dr1.HasRows)
while(dr1.Read())
{
string File_Path = Server.MapPath( "../../Files/WeeklyReport/ "+dr1[ "FileName "].ToString().Trim());
if(File.Exists(File_Path))
File.Delete(File_Path);
}
Con.Close();
}
Conn.ExecuteNonQuery_Sql_alert_refurbish_self(this,sql_del, "删除成功!!! "