C# 使用JQuery更新Repeater中的隐藏字段

C# 使用JQuery更新Repeater中的隐藏字段,c#,jquery,hidden-field,C#,Jquery,Hidden Field,我有一个简单的库存项目网格,用户可以从一个位置拖动到另一个位置-从源中减去1,然后将一个添加到目标 $("input:hidden[name=hid" + dragAttr + "]").val(dragNew); $("input:hidden[name=hid" + dragAttr + "]").val(dropNew); 初始值使用c repeater填充,我使用JQuery来可视化拖放 $("input:hidden[name=hid" + dragAttr + "]").val(d

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

$("input:hidden[name=hid" + dragAttr + "]").val(dragNew);
$("input:hidden[name=hid" + dragAttr + "]").val(dropNew);
初始值使用c repeater填充,我使用JQuery来可视化拖放

$("input:hidden[name=hid" + dragAttr + "]").val(dragNew);
$("input:hidden[name=hid" + dragAttr + "]").val(dropNew);
我的问题是当我想点击保存按钮时。我在网格中迭代,用这些值更新数据库。如果不更改,则会填充所有隐藏字段。但当遇到重新计算的网格项时,隐藏字段为空

$("input:hidden[name=hid" + dragAttr + "]").val(dragNew);
$("input:hidden[name=hid" + dragAttr + "]").val(dropNew);
她是我的中继器:

<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>
$("input:hidden[name=hid" + dragAttr + "]").val(dragNew);
$("input:hidden[name=hid" + dragAttr + "]").val(dropNew);
以下是点击事件:

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 ++;
        }
    }
}
$("input:hidden[name=hid" + dragAttr + "]").val(dragNew);
$("input:hidden[name=hid" + dragAttr + "]").val(dropNew);
我很确定这段代码从C的角度来看是错误的

    $("input[name$=rptTyres_hfData_" + dragAttr + "]").val(dragNew);
    $("input[name$=rptTyres_hfData_" + dropAttr + "]").val(dropNew);
$("input:hidden[name=hid" + dragAttr + "]").val(dragNew);
$("input:hidden[name=hid" + dragAttr + "]").val(dropNew);
有什么建议吗

$("input:hidden[name=hid" + dragAttr + "]").val(dragNew);
$("input:hidden[name=hid" + dragAttr + "]").val(dropNew);
编辑:我尝试使用html隐藏字段,并使用JQuery修改隐藏字段值:

$("input:hidden[name=hid" + dragAttr + "]").val(dragNew);
$("input:hidden[name=hid" + dragAttr + "]").val(dropNew);
并读取值以修改数据库:

$("input:hidden[name=hid" + dragAttr + "]").val(dragNew);
$("input:hidden[name=hid" + dragAttr + "]").val(dropNew);
var hfData = Request.Form["hid" + tyreId];

不幸的是,它会在未更改时拾取值,但由JQuery更新的任何隐藏字段都会返回null。我的头撞在这里的砖墙上了

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

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