我是菜鸟,最近在学习datalist想在datalist外边加个按钮,在按钮事件里实现删除,在datalist里面有checkbox,单击按钮时把选择的这一行给删除掉。
按钮在datalist里面的删除问题已经实现过了,按钮在外边就是每一行的id不知道怎么获得。
哪位大哥能帮帮忙给解决一下?小弟不胜感激!
按钮在datalist里面的删除问题已经实现过了,按钮在外边就是每一行的id不知道怎么获得。
哪位大哥能帮帮忙给解决一下?小弟不胜感激!
解决方案 »
- 从三张表中联合生成动态树(三级)
- Infragistics.WebUI.UltraWebGrid 行颜色显示问题
- 为什么我调用ACCESS时要求服务器有network service 写入权限,一般读取权限就可以了?
- SQL注入真的很难防吗
- 关于DataSet显示的问题??
- 请高手支招~!如何用js得到触发了onclick事件的控件(这里是checkbox)的ID,name之类的属性
- asp.net中数据库数据库的读取问题
- 如何使一个文本框实现像IE地址栏那样的效果?
- codebehind里动态生成的超链接列,如何设置多个参数?
- 请教!!!!!
- 动态添加删除自定义控件的问题!!!各位高手帮忙!
- 使用POST方法上传数据时遇到的问题
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
CheckBox chkSelect = (CheckBox)this.GridView1.Rows[i].Cells[0].FindControl("checkbox1");
if (chkSelect.Checked)
{
id += this.GridView1.DataKeys[i].Value.ToString() + ",";
}
} if (id == "")
{
Page.RegisterStartupScript("","<script>alert('请选择要删除的城市!');</script>");
}
else
{
try
{
id = id.Substring(0, id.Length - 1);
//删除操作
}
catch
{
Response.Write("<script>alert('删除失败!');</script>");
}
}
{
foreach(DataListItem item in DataList)
{
CheckBox box =(CheckBox)item.FindControl("CheckBox_Id");
if(box.Checked)
{
string id=item.DataKeys[item.ItemIndex];
//这里可以存在一个数组里面,也可以直接删除
}
}
}
datalist里加一列邦定ID的checkboxonclick时将该值放到页面里的<input type="hidden" runate="server" />里后台就可以获取该ID
这里给你个用hidden的例子: protected void BtnDelete_Click(object sender, ImageClickEventArgs e)
{
string delid="";
foreach (DataListItem dli in this.DataList1.Items)
{
if (((CheckBox)dli.FindControl("CheckBox1")).Checked) //假设checkbox的id是CheckBox1
{
delid += ((HiddenField)dli.FindControl("id")).Value + ","; //假设hiddenfield的id是id
}
}
if (delid.Length < 2)
{
//没有选中checkbox,可输出提醒
return;
}
delid = delid.Substring(0, delid.Length - 1);
string strSQL="DELETE FROM [TABLE] WHERE [ID] IN (" + delid + ")";
//连接数据库并执行操作..
}
<asp:DataList ID="DataList1" DataKeyField="id" Width="100%" runat="server">
<ItemTemplate>
....
</ItemTemplate>
</asp:DataList>
<asp:Button ID="Button1" runat="server" Text="删 除" OnClick="Button1_Click" Height="19px" /> protected void Button1_Click(object sender, EventArgs e)
{
string connstr = ConfigurationManager.AppSettings["dataString"];
SqlConnection conn = new SqlConnection(connstr);
SqlCommand cmd; foreach (DataListItem item in DataList1.Items)
{
CheckBox cbox = (CheckBox)item.FindControl("CheckBox1");
if (cbox.Checked == true)
{
string p = (DataList1.DataKeys[item.ItemIndex]).ToString(); string sql = "delete from tableName where id=" + p;
cmd = new SqlCommand(sql, conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close(); Response.Write("<script>alert('删除成功');window.location.href('xxx.aspx')</script>");
}
}
}
<asp:DataList ID="DatalistTest" runat="server" >
<ItemTemplate>
<tr>
<td align="center">
<asp:CheckBox ID="checkboxSelect" runat="server" ValidationGroup='<%#Eval("ID")%>' />
</td>
</tr>
</ItemTemlate>
</asp:DataList><asp:Button Id="btnSelect" runat="server" Text="删除" OnClick="ChangeGo_Click" />
string id = string.Empty;
for (int j = 0; j < this.DatalistTest.Items.Count; j++)
{
var ckbox = DatalistTest.Items[j].FindControl("checkboxSelect") as CheckBox;
if (ckbox != null && ckbox.Checked)
{
id = ckbox.ValidationGroup + ";" + id;
}
}