如何在javascript中获取gridview文本框控件ID?

时间:2014-02-18 11:43:42

标签: javascript asp.net gridview

我有ASP.NET Gridview和Textbox控件。现在我想在java脚本中获取Textbox ID。 我已经在堆栈溢出中引用了这个问题,但我无法得到确切的答案。

我的网格视图模板代码是

<asp:TemplateField HeaderText="Amt Recieve Now" ControlStyle-Width="100">
   <ItemTemplate>
    <asp:TextBox ID="txtAmountReceiveNow" runat="server" CssClass="textboxRight"
        AutoPostBack="true" OnFocus= "GVtxtAmount()"
        OnTextChanged="txtAmountReceiveNow_TextChange" 
                Text='<%#Eval("AMOUNT_RECEIVE_NOW")%>'>
     </asp:TextBox>
   </ItemTemplate>
</asp:TemplateField>

和Javascript代码如下:

 function GVtxtAmount() {
    var txtAmountReceive = document.getElementById(
                  '<%= ((GVMaintainReceiptMaster)Container)
                         .FindControl("txtAmountReceiveNow").ClientID %>');
    var selection = txtAmountReceive.value.indexOf(".");
    alert(selection);
 };

GVMaintainReceiptMaster 是GridView的ID

帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

试试这个

function GVtxtAmount() {
        var txtAmountReceive = $("input[id*=txtAmountReceiveNow]")
        var selection = txtAmountReceive.value.indexOf(".");
        alert(selection);
};

答案 1 :(得分:1)

您无法以这种方式获取文本框。这是解决方法,我希望它会有所帮助。

function GVtxtAmount() {
        var GVMaintainReceiptMaster = document.getElementById('<%= GVMaintainReceiptMaster.ClientID %>');

        for (var rowId = 1; rowId < GVMaintainReceiptMaster.rows.length; rowId++) {
            var txtbx = GVMaintainReceiptMaster.rows[rowId].cells[0].children[0];
            alert(txtbx.value);
        }
        return false;
    }