繁体   English   中英

单击锚链接时如何在转发器中查找文本框值

[英]how to find textbox value in repeater when click on anchor link

我有一个带有文本框的重复器。现在我想在用户点击链接时获取textbox(txtDestroyQty)的值。

<asp:Repeater ID="rptDestroy" runat="server"  >
    <ItemTemplate>
        <tr>
            <td><%#Eval("productName") %></td>
            <td><%#Eval("ProductId") %></td>
            <td><%#Eval("Attid") %></td>
            <td><%#Eval("vname") %></td>
            <td><%#Eval("PendingQty") %></td>
            <td>
                <asp:TextBox ID="txtDestroyQty" CssClass="txt" runat="server"></asp:TextBox>
                <a href="javascript:Destroy('<%#Eval("vendorId") %>','<%#Eval("ProductId") %>','<%#Eval("Attid") %>')">Destroy</a>
            </td>
        </tr>
    </ItemTemplate>
</asp:Repeater>

我有这个jQuery:

function Destroy(vid, Pid, Attid) {
    var obj = {};
    obj.vid = vid;
    obj.pid = Pid;
    obj.attid = Attid;
    obj.pendingqty = pendingqty;
    $.ajax({
        type: "POST",
        url: "/stocks/Rejection.aspx/DestroyItem",
        data: JSON.stringify(obj),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {

            if (data.d == "Y")
                window.location.href = '/stocks/rejection.aspx';
            else
                alert('Not Destroyed');

        },
        error: function (result) {
            alert('went wrong');
        }

    });
}

我试过这个

var pendingqty = $('#txtDestroyQty').val();
var value = $(this).closest('tr').find('input.txt').val();

您可以将this作为上下文传递:

<a href="javascript:Destroy(this, '<%#Eval("vendorId") %>','<%#Eval("ProductId") %>','<%#Eval("Attid") %>')">Destroy</a>

现在你必须在js函数中改变它:

function Destroy(el, vid, Pid, Attid) { // <----get this as el
    var obj = {};
    obj.vid = vid;
    obj.pid = Pid;
    obj.attid = Attid;
    obj.pendingqty = $(el).prev().val(); // now assign it here

使用像HyperLink这样的服务器端控件,并设置ID属性。 然后你可以使用this.id获取它的ID。 然后,只需用您的TextBox ID替换HyperLink ID。 这将为您提供每行文本框的客户端ID。

注意:this.id为anchor <a>返回未定义的错误。 我不确定为什么在这个阶段。 这是我们使用Repeater或任何其他列表控件的常见技巧。

使用以下代替锚链接。

<asp:HyperLink ID="HyperLink1" onclick="javascript:alert(this.id.replace('HyperLink1', 'txtDestroyQty'));" runat="server">Destry</asp:HyperLink>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM