简体   繁体   English

如何使用JavaScript将gridview中的复选框值获取到texbox中?

[英]How can I get checkbox value inside gridview into texbox using javascript?

I have a checkbox inside a gridview like this 我在这样的GridView中有一个复选框

<asp:GridView ID="GridView1" runat="server" BorderColor="Blue" BorderWidth="1px" CellPadding="4" Font-Size="Small" ForeColor="#333333" GridLines="None" Width="165px">
  <Columns>
     <asp:TemplateField>
        <EditItemTemplate>
         <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        </EditItemTemplate>
     <ItemTemplate>

    <asp:CheckBox ID="CB"  runat="server" />
   </ItemTemplate>
  </asp:TemplateField>
</Columns>

I want to get a value of checked textbox into another textbox which is outside gridview using javascript. 我想将使用JavaScript将选中的文本框的值放到gridview之外的另一个文本框中。

Since texbox placed in an EditItemTemplate you need to switch gridview to edit mode before. 由于texbox放置在EditItemTemplate中,因此您需要先将gridview切换到编辑模式。 So as it is right now you can't get textbox value on javascript on checkbox click. 因此,就目前而言,您无法通过单击复选框来获取JavaScript上的文本框值。

You may add hidden field next to checkbox and bind it's value to text that you want to display in outer textbox on checkbox click. 您可以在复选框旁边添加隐藏字段,并将其值绑定到要在单击复选框时显示在外部文本框中的文本。

$(function () {
     $(".cb").click(function () {
          var selectedText = $(this).next("input[type='hidden']").val();
          $("#<%= SelectedValueTextBox.ClientID %>").val(selectedText);
     });
});

Selected:&nbsp<asp:TextBox runat="server" ID="SelectedValueTextBox" />
<br />
<asp:GridView ID="GridView1" runat="server" BorderColor="Blue" BorderWidth="1px"
     CellPadding="4" Font-Size="Small" ForeColor="#333333" GridLines="None" Width="165px">
     <Columns>
          <asp:TemplateField>
               <EditItemTemplate>
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
               </EditItemTemplate>
               <ItemTemplate>
                    <asp:CheckBox ID="CB" runat="server" CssClass="cb" />
                    <asp:HiddenField runat="server" Value="<%# Container.DataItem.ToString() %>" />
               </ItemTemplate>
          </asp:TemplateField>
     </Columns>
</asp:GridView>

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        GridView1.DataSource = Enumerable.Range(1, 10);
        GridView1.DataBind();
    }
}

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

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