Javascript 如何获取同一行的值

Javascript 如何获取同一行的值,javascript,asp.net,Javascript,Asp.net,我在这张表中有一些数据。编辑百分比时,如何获取供应量的值 以下是我的ASPX代码: <asp:GridView ID="grdSupplierItem" runat="server" AutoGenerateColumns="False" CssClass="Gridview3"> <Columns>

我在这张表中有一些数据。编辑百分比时,如何获取供应量的值

以下是我的ASPX代码:

  <asp:GridView ID="grdSupplierItem" runat="server" AutoGenerateColumns="False" CssClass="Gridview3">
                                        <Columns>
                                            <asp:TemplateField HeaderText="Supplier">
                                                <ItemTemplate>
                                                    <asp:Label ID="lblAutoNum" Visible="false" Text='<%# Eval("AutoNum") %>' runat="server" />
                                                    <asp:DropDownList ID="ddlSupplier" runat="server" CssClass="form-control width250">
                                                    </asp:DropDownList>
                                                </ItemTemplate>
                                            </asp:TemplateField>
                                            <asp:TemplateField HeaderText="Sequence">
                                                <ItemStyle HorizontalAlign="Right"></ItemStyle>
                                                <ItemTemplate>
                                                    <asp:TextBox CssClass="form-control numbertext" onkeypress="return onlyNumber(event)" Width="80px" ID="txtSequence" Text='<%#String.Format("{0:n0}", DataBinder.Eval(Container.DataItem, "Sequence")) %>' runat="server"></asp:TextBox>
                                                </ItemTemplate>
                                            </asp:TemplateField>
                                            <asp:TemplateField HeaderText="Percentage (%)">
                                                <ItemStyle HorizontalAlign="Right"></ItemStyle>
                                                <ItemTemplate>
                                                    <asp:TextBox CssClass="form-control numbertext" onkeyup="javascript:text_changed(this);" ID="txtPercentage" AutoPostBack="false" OnTextChanged="txtPercentage_TextChanged" Text='<%# DataBinder.Eval(Container.DataItem, "SupplyPercentage") %>' runat="server"></asp:TextBox>
                                                </ItemTemplate>
                                            </asp:TemplateField>
                                            <asp:TemplateField HeaderText="Effective Date">
                                                <ItemTemplate>
                                                    <asp:TextBox CssClass="form-control datepicker" ID="txtEffectiveDate" data-provide="datepicker" runat="server" Width="120px"></asp:TextBox>
                                                </ItemTemplate>
                                            </asp:TemplateField>
                                            <asp:TemplateField HeaderText="Expired Date">
                                                <ItemTemplate>
                                                    <asp:TextBox CssClass="form-control datepicker" ID="txtExpiredDate" data-provide="datepicker" runat="server" Width="120px"></asp:TextBox>
                                                </ItemTemplate>
                                            </asp:TemplateField>
                                            <asp:TemplateField HeaderText="Unit Price(RM)">
                                                <ItemStyle HorizontalAlign="Right"></ItemStyle>
                                                <ItemTemplate>
                                                    <asp:TextBox CssClass="form-control numbertext text-right" OnTextChanged="txtUnitPrice_TextChanged" onkeypress="return isNumber(event)" ID="txtUnitPrice" AutoPostBack="true" Text='<%# DataBinder.Eval(Container.DataItem, "SellingPrice") %>' runat="server"></asp:TextBox>
                                                </ItemTemplate>
                                            </asp:TemplateField>
                                            <asp:TemplateField HeaderText="Supply Qty">
                                                <ItemStyle HorizontalAlign="Right"></ItemStyle>
                                                <ItemTemplate>
                                                    <asp:TextBox CssClass="form-control numbertext text-right" OnTextChanged="txtSupplyQty_TextChanged" AutoPostBack="true" onkeypress="return isNumber(event)" ID="txtSupplyQty" Text='<%# DataBinder.Eval(Container.DataItem, "SupplyQty") %>' runat="server"></asp:TextBox>
                                                </ItemTemplate>
                                            </asp:TemplateField>
                                            <asp:TemplateField HeaderText="Supply Value">
                                                <ItemStyle HorizontalAlign="Right"></ItemStyle>
                                                <ItemTemplate>
                                                    <asp:TextBox CssClass="form-control numbertext text-right" OnTextChanged="txtSupplyValue_TextChanged" AutoPostBack="true" onkeypress="return isNumber(event)" ID="txtSupplyValue" Text='<%# DataBinder.Eval(Container.DataItem, "SupplyValue") %>' runat="server"></asp:TextBox>
                                                </ItemTemplate>
                                            </asp:TemplateField>
                                            <asp:ButtonField Text="&lt;img border=0 src=ImageFile/Delete1.gif&gt;" CommandName="Delete">
                                                <ItemStyle HorizontalAlign="Center"></ItemStyle>
                                            </asp:ButtonField>
                                        </Columns>
                                        <RowStyle CssClass="gridrow" />
                                        <SelectedRowStyle CssClass="gridheader" />
                                        <HeaderStyle CssClass="gridheader" />
                                        <AlternatingRowStyle CssClass="gridRowAlt" />
                                    </asp:GridView>
我需要对Javascript代码进行一些计算

一旦您的客户收到页面,您的ID就会更改

如果使用JavaScript,则需要以不同的方式获取客户端的文本框ID。如果您使用的是jQuery,它将如下所示:

const textBox=$find; 但除此之外,web表单控件不支持此处定义的onkeyup事件侦听器

如果您真的想附加onkeyup事件,您必须在脚本块中手动附加一个事件侦听器,就像我刚才提到的那样,或者必须在代码隐藏中执行

如果要在代码隐藏中附加事件侦听器,可以将其连接到页面加载:

txtPercentage.Attributes.AddonKeyUp,文本\u更改此;
看看HTML。ID不是txtSupplyQty…它肯定是txtSupplyQtyIt肯定不是。如果这意味着您在html中有重复的id。我得到以下信息:错误BC30451:“txtSupplyQty”未声明。由于其保护级别,它可能无法访问。是否在代码中定义txtSupplyQty?或者它没有在您的代码中定义,或者它被声明为私有对象,并且它至少需要是一个受保护的对象。我应该如何定义它?受保护的txtSupplyQty为整数?如果您使用的是VB:Protected txtSupplyQty为文本框如果您使用的是C:Protected TextBox txtSupplyQty;好的,事件侦听器工作得很好。我应该如何添加text_changed函数?
     function text_changed(textObj) {
     value = textObj.value;
     var $otherInput = 
     textObj.closest('tr').find('input[id$="txtSupplyQty"]');
    }