结合HiddenField遍历DataList

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结合HiddenField遍历DataList相关的知识,希望对你有一定的参考价值。

aspx页面部分代码
<input id="cbxItem" runat="server" type="checkbox" />
<asp:HiddenField ID="hdnNewsID" runat="server" Value='<%#Eval("Card_id")%>' />

cs代码
htmlInputCheckBox cbxItem = null;
HiddenField hdnNewsID = null;
foreach (DataListItem item in this.dlInfo.Items)

try

cbxItem = item.FindControl("cbxItem") as HtmlInputCheckBox;
hdnNewsID = item.FindControl("hdnNewsID") as HiddenField;
if (cbxItem.Checked)

int Card_id = Convert.ToInt32(hdnNewsID.Value);
crs.DelCard(Card_id);


else

Response.Write("<script>location='CardList.aspx'</script>");


catch

Response.Write("<script>alert('error!');location='CardList.aspx'</script>");


Response.Write("<script language=javascript>alert('删除成功!')</script>");
dlBind();
无法捕捉到选中的 checkbox 直接跳转到了CardList.aspx页面 怎么回事

PagedDataSource ps = new PagedDataSource();
ps.DataSource = crs.FindFettle(Card_fettle).Tables[0].DefaultView; 绑定用这个做的是否跟视图有关
上面的是删除事件处理部分的代码 我是通过foreach (DataListItem item in this.dlInfo.Items)遍历DataList的
hdnNewsID = item.FindControl("hdnNewsID") as HiddenField;可以获取到值

cbxItem = item.FindControl("cbxItem") as HtmlInputCheckBox; 这个地方获取不到选中的选项

1. 程序的逻辑有问题

假设你的DataList里面一共有三项,你选中的是第二个复选框,当遍历DataList的时候,由于第一个CheckBox不是选中的,就直接执行else里的跳转了

2. catch处理的也不好
catch

Response.Write("<script>alert('error!');location='CardList.aspx'</script>");

这里最好看看实际的异常,看下具体的错误(因为也可能是cbxItem 或者hdnNewsID 为null,也可能是 Convert.ToInt32转换不成功)
catch(Exception ex)

Response.Write(ex.Message);
参考技术A 你能调试吗,用iis调试吗

DataList中对CheckBox的遍历问题

string num = "";

foreach (DataListItem item in DataList1.Items)

System.Web.UI.WebControls.CheckBox chkExport;
chkExport = (CheckBox)item.FindControl("CheckBox1");

if (chkExport.Checked.Equals(true))
num += chkExport.Text;
else
num += "/";
//num += chkExport.Text;

//num += "*";



lblShow.Text += num;

页面回发,chkExport.Checked全是假。。。

参考技术A 怀疑你DataList在postback时重新绑定了. DataList1.DataBind()是否位于if (!IsPostBack)之内

以上是关于结合HiddenField遍历DataList的主要内容,如果未能解决你的问题,请参考以下文章

更改 Json 数组的值并放入 Hiddenfield

HiddenField 的值未更新

在 MVC 的回发中保留 hiddenField 值

二叉树的层序遍历--结合递归算法

serializer中的验证器

尝试结合使用 jQuery 的 window.open 函数和 for 循环来遍历数组时出现问题