2012-11-16 24 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; 
    } 
} 
相关问题