2016-05-19 5 views
1

テキストボックスがあるリテーターがあります。次に、ユーザーがリンクをクリックすると、テキストボックス(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'); 
     } 

    }); 
} 

私はあなたがコンテキストとしてthisを渡すことができ、この

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

答えて

0

を試してみました:

<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 
+0

e1.valueはテキストボックスの値を与えます....本当ですか? – chandani

+0

e1.value 'undefined'を返します – chandani

+0

これは機能しません。 – chandani

0

IDプロパティが設定されたHyperLinkのようなサーバー側のコントロールを使用します。 this.idを使ってIDを取得することができます。 HyperLink IDをTextBox IDに置き換えてください。これにより、各行のテキストボックスのクライアント側IDが得られます。

注:this.idはアンカー<a>の未定義エラーを返します。なぜこの段階ではわからないのですか?これは、Repeaterやその他のリストコントロールで行う一般的なトリックです。

アンカーリンクの代わりに以下を使用してください。

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

jquery codeも参照してください – chandani

+0

私は何をしますか?私の提案を試しましたか? – Sam

関連する問題