2012-11-16 26 views
0

在這裏,是我的GridView如何從GridView的當前行獲取文本框的文本上的LinkBut​​ton的點擊該行

<asp:GridView ID="gvEmployee" runat="server" AutoGenerateColumns="false" GridLines="Both"> 
      <Columns> 
       <asp:TemplateField HeaderText="Name"> 
        <ItemTemplate> 
         <asp:TextBox ID="txtName" runat="server" Text='<%#Eval("Name") %>'></asp:TextBox> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:BoundField DataField="Emailid" HeaderText="EmailId" /> 
       <asp:TemplateField > 
        <ItemTemplate> 
         <asp:LinkButton ID="lnkgettext" runat="server" OnClientClick="return callme(<%= txtName.ClientID %>);" Text="Gettextboxvalue" ></asp:LinkButton> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
     </asp:GridView> 
    <script type="text/javascript"> 
     function callme(txt) { 
      alert(txt); 
     } 
    </script> 

的onclick的LinkBut​​ton的,我想從gridview的

的當前行獲得一個文本框的值

請幫助我通過javascript

+0

可能[這](HTTP ://www.w3schools.com/jquery/tryit.asp?filename = tryjquery_dom_val_get)例子可以適合你的目標。 – BrOSs

回答

0

你將不得不使用行數據綁定如下
這也可以通過jQuery來完成。但首先這個目的應該清楚。
即天氣要回發與否等

protected void gvEmployee_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     LinkButton lk = (LinkButton)e.Row.FindControl("lnkgettext"); 
     TextBox textBox = (TextBox)e.Row.FindControl("txtName"); 
     lk.Attributes.Add("onclick", "return callme('" + lk.ClientID + "')"); 
    } 
} 

和你的GridView如下

<asp:GridView ID="gvEmployee" runat="server" AutoGenerateColumns="false" GridLines="Both" 
     OnRowDataBound="gvEmployee_RowDataBound"> 
     <Columns> 
      <asp:TemplateField HeaderText="Name"> 
       <ItemTemplate> 
        <asp:TextBox ID="txtName" runat="server" Text='<%#Eval("Name") %>'></asp:TextBox> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:BoundField DataField="Emailid" HeaderText="EmailId" /> 
      <asp:TemplateField> 
       <ItemTemplate> 
        <asp:LinkButton ID="lnkgettext" runat="server" Text="Gettextboxvalue"></asp:LinkButton> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 
    <script type="text/javascript"> 
     function callme(txt) { 
      alert(txt); 
     } 
    </script> 

甚至如下

 $(document).ready(function() { 
     $('#gvEmployee a').click(function() { 
      alert($(this).parent("td").parent("tr").find("input:text").val()); 
     }); 
    }); 
+0

textbox是可編輯的,所以我想要改變的值,而不是從後面的代碼 –

+0

我不明白你想要什麼。上面的代碼只是綁定客戶端點擊,沒有別的。你有沒有試過這個。我沒有改變任何價值。 –

+0

它確實幫助我,但如果我在一行中有三個文本框,你能幫忙用JavaScript而不是jQuery –

0

修改你的LinkBut​​ton的代碼如下jQuery函數:

 <asp:LinkButton ID="lnkgettext" runat="server" 
CommandArgument='<%#DataBinder.Eval(Container.DataItem, "Name")%>' 
OnCommand="Load_Data" ></asp:LinkButton> 

你可以採取隱藏字段,從中可以獲取價值和隱藏字段會從下面的代碼獲得價值:

<asp:HiddenField ID="hiddenfield1" runat="server" /> 

在服務器端

protected void Grid_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    switch (e.CommandName) 
    { 
     case "Load_Data": 
     { 
      hiddenfield1.value = e.CommandArgument.ToString(); 
      break; 
     } 
     default: 
      break; 
    } 
} 
相關問題