如何使用javascript在gridview中获取文本框的值? [英] how to get value of textbox within gridview using javascript?

查看:87
本文介绍了如何使用javascript在gridview中获取文本框的值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,

我有一个gridview,每行包含一些textBox。我需要使用JAVAScript对此文本框值执行一些计算..

我用通常的方式执行此操作,但它给出了类似的错误..此txt_box在当前上下文中不存在。 。

所以plz确实为这个问题建议了一个合适的解决方案:

这是我的代码:
GRID VIEW中的


< ItemTemplate> 

< asp:TextBox ID = txt_Install runat = server Text = ' <%#Eval(total)%>' > < / asp:TextBox >
< / ItemTemplate >
< / asp:TemplateField >
< asp:TemplateField ItemStyle-Width = 20% HeaderText = 已收到分期付款 >
< ItemTemplate>
< asp:TextBox ID = txt_rcvInstl runat = server onKeyUp = DueAmt() > < / asp:TextBox >
<% - < asp:Label ID = txt_InstallDate Text = ' <%#Eval(Installmentdate)%>' runat = server > < / asp:Label > - % >
< / ItemTemplate >
< / asp:TemplateField >
< asp:TemplateField ItemStyle-Width = 20% HeaderText = 到期金额 >
< ItemTemplate>
< asp:TextBox ID = txt_dueAmt runat = server > < / asp:TextBox >

< span class =code-keyword>< /
ItemTemplate >





用JavaScript代替


 <   script    类型  =  text / javascript >  

函数DueAmt(){
var install = document.getElementById('<% = txt_Install.ClientID %> ')。value;
var RcvInstl = document.getElementById('<% = txt_rcvInstl.ClientID %> );
var Due = document.getElementById('<% = txt_dueAmt.ClientID %> );

if(install!=)t1 = install.value;
if(RcvInstl!=)t2 = RcvInstl.value;
Due.value = parseFloat(t1) - parseFloat(t2);


}
< / script < span class =code-keyword>>

解决方案

请查看以下链接:

如何使用Javascript从Gridview中的文本框中获取文本值 [ ^ ]



如何使用Javascript在GridView中查找文本框 [ ^

试试这个

函数DueAmt(){
var install = document.getElementById (' <%= GridView1_ctl02_txt_Install.ClientID%>')。;
var RcvInstl = document.getElementById(' <%= GridView1_ctl02_txt_rcvInstl.ClientID%>');
var Due = document.getElementById(' <%= GridView1_ctl02_txt_dueAmt.ClientID%>');

if (install!= )t1 = install。 value ;
if (RcvInstl!= )t2 = RcvInstl。 value ;
到期。 value = parseFloat(t1) - parseFloat(t2);


您无法获取asp.net文本框控件的文本,因为在呈现页面时,其ID已更改。你可以看到使用View页面源。

有很多方法可以获得textbox的价值。最简单的方法如下(我不是说这是一个很好的做法,但暂时你可以做)。

修改:

< ; asp:textbox id =txt_Installrunat =servername =mytextboxonkeyup =DueAmt()xmlns:asp =#unknown>< / asp:textbox> 





脚本代码示例:

功能DueAmt() {
var install = document.getElementsByName(ctl00


Hello,
I m having a gridview, which contains some textBox in each row. I need o perform some calculation on this textbox value using JAVAScript..
I am doing this with usual way, but it gives me an error like .."This txt_box does not exist in the current context.."
so plz do suggest a proper solution for this problem:
Here is my code:
in GRID VIEW

<ItemTemplate>
                                
                                <asp:TextBox ID="txt_Install" runat="server" Text='<%# Eval("total") %>'  ></asp:TextBox>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField ItemStyle-Width="20%" HeaderText="Recieved Installment">
                            <ItemTemplate>
                            <asp:TextBox ID="txt_rcvInstl" runat="server" onKeyUp="DueAmt()"></asp:TextBox>
                                <%--<asp:Label ID="txt_InstallDate" Text='<%# Eval("Installmentdate") %>' runat="server"></asp:Label>--%>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField ItemStyle-Width="20%" HeaderText="Due Amount">
                            <ItemTemplate>
                            <asp:TextBox ID="txt_dueAmt" runat="server"></asp:TextBox>
                               
                            </ItemTemplate>




in JavaScript :

<script type="text/javascript">

    function DueAmt() {
        var install = document.getElementById('<%= txt_Install.ClientID %>').value;
        var RcvInstl = document.getElementById('<%= txt_rcvInstl.ClientID %>');
        var Due = document.getElementById('<%= txt_dueAmt.ClientID %>');

        if (install != "") t1 = install.value;
        if (RcvInstl != "") t2 = RcvInstl.value;
        Due.value = parseFloat(t1) - parseFloat(t2);


    }
</script>

解决方案

Please have a look on the bellow link :
How to get the text value from textbox which is in Gridview using Javascript[^]

How to find text-box in GridView using Javascript[^]


Just try this

function DueAmt() {
    var install = document.getElementById('<%= GridView1_ctl02_txt_Install.ClientID %>').value;
    var RcvInstl = document.getElementById('<%= GridView1_ctl02_txt_rcvInstl.ClientID %>');
    var Due = document.getElementById('<%= GridView1_ctl02_txt_dueAmt.ClientID %>');

    if (install != "") t1 = install.value;
    if (RcvInstl != "") t2 = RcvInstl.value;
    Due.value = parseFloat(t1) - parseFloat(t2);


You are not able to get the text of asp.net textbox controls because when page is being rendered its id got change. You can see using View page source.
There are many ways to get the value of textbox. Easiest way as given below (I am not saying that it is a good practice but for time being you can do).
Modified:

<asp:textbox id="txt_Install" runat="server" name="mytextbox" onkeyup="DueAmt()" xmlns:asp="#unknown"></asp:textbox>



Sample of script code:

function DueAmt() {
            var install = document.getElementsByName("ctl00


这篇关于如何使用javascript在gridview中获取文本框的值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆