【问题标题】:Update Hidden Field in Repeater Using JQuery使用 JQuery 更新中继器中的隐藏字段
【发布时间】:2014-11-10 11:23:08
【问题描述】:

我有一个简单的库存项目网格,用户可以将其从一个位置拖到另一个位置 - 从源中减去 1 并在目标中添加一个。

使用 c# 中继器填充初始值,我使用 JQuery 来可视化拖放。

我的问题是当我想点击保存按钮时。我遍历网格,用这些值更新数据库。不变,保存工作(填充所有隐藏字段)。但是遇到重新计算的网格项时,隐藏字段为空。

她是我的中继器:

<asp:Repeater ID="rptTyres" runat="server">
     <ItemTemplate>
          <li data-id="<%#Eval("TyresId") %>" class="ty"><%#Eval("TyresStockVol") %><asp:HiddenField ID="hfData" runat="server" Value='<%#Eval("TyreStockVol") %>' /></li>
     </ItemTemplate>
</asp:Repeater>

这是修改拖放值的 JQuery:

if (dragValue > 0) {
    $("[data-id=" + dragAttr + "]").text(dragNew);
    $("[data-id=" + dropAttr + "]").text(dropNew);
    $("input[name$=rptTyres_hfData_" + dragAttr + "]").val(dragNew); //new source total
    $("input[name$=rptTyres_hfData_" + dropAttr + "]").val(dropNew); //new destination total
}

这里是点击事件:

protected void btnSave_Click(object sender, EventArgs e)
{
    var tyreId = 1;
    foreach (RepeaterItem item in rptTyres.Items)
    {
        if (item.ItemType == ListItemType.Item
                || item.ItemType == ListItemType.AlternatingItem)
        {
            var hf = (HiddenField)item.FindControl("hfData");
            var hfData = Convert.ToInt32(hf.Value);
            UpdateTyre(tyreId, hfData);
            tyreId ++;
        }
    }
}

从 C# 的角度来看,我很确定这段代码是错误的;

    $("input[name$=rptTyres_hfData_" + dragAttr + "]").val(dragNew);
    $("input[name$=rptTyres_hfData_" + dropAttr + "]").val(dropNew);

有什么建议吗?

编辑:我尝试使用 html 隐藏字段,并使用 JQuery 修改隐藏字段值:

$("input:hidden[name=hid" + dragAttr + "]").val(dragNew);
$("input:hidden[name=hid" + dragAttr + "]").val(dropNew);

并读取值来修改数据库:

var hfData = Request.Form["hid" + tyreId];

不幸的是,它会在未更改的情况下获取值,但是由 JQuery 更新的任何隐藏字段都返回 null。我在这里用头撞砖墙!

【问题讨论】:

    标签: c# jquery hidden-field


    【解决方案1】:

    我可以让它工作的唯一方法是在中继器之外放置一个隐藏字段的硬连线块。不知道为什么,但至少它起作用了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-13
      • 1970-01-01
      • 2011-08-23
      • 1970-01-01
      • 2023-03-11
      • 2012-08-28
      • 2012-06-28
      相关资源
      最近更新 更多