【问题标题】:Trying to trigger an ASP Button generated in a gridview after hitting enter in textbox在文本框中按回车后尝试触发在 gridview 中生成的 ASP 按钮
【发布时间】:2017-04-20 13:25:52
【问题描述】:

我有一个 gridview,它生成几行,每行包含几个动态创建的文本框和 2 个按钮。单击 UpdateBtn1 时,DB 将使用文本框中的值进行更新。最终,用户应该能够在使用任一文本框触发更新时单击更新按钮或按回车键。

这就是我现在所处的位置。

<asp:GridView ID="InitialData" runat="server"
                AutoGenerateColumns="False"
                OnRowDataBound="gv_GridDataBound"
                OnRowCommand="InitialRowButton_Click"
                DataKeyNames="ID" OnSelectedIndexChanged="InitialData_SelectedIndexChanged">
                <Columns>
                    <asp:TemplateField HeaderText="Update">
                        <ItemTemplate>
                            <asp:Button ID="UpdateBtn1" ButtonType="Button" Text="Update" runat="server"
                                CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" CommandName="Run_Update" />
                        </ItemTemplate>
                    </asp:TemplateField>

                    <asp:BoundField ReadOnly="true" HeaderText="Data" DataField="Data" />
                    <asp:BoundField ReadOnly="true" HeaderText="Data" DataField="Data" />
                    <asp:BoundField ReadOnly="true" HeaderText="Data" DataField="Data" />
                    <asp:BoundField ReadOnly="true" HeaderText="Data" DataField="Data" />
                    <asp:BoundField ReadOnly="true" HeaderText="Data" DataField="Data" />

                    <asp:TemplateField HeaderText="Input Textbox1">
                        <ItemTemplate>
                            <asp:Button ID="RequestBtn" CommandName="Get_Weight" HeaderText="Request Weight"
                                CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" runat="server" Text="Request Weight" />
                            <asp:TextBox ID="InputText1" runat="server" Text='<%# Eval("MEASURED_WEIGHT") %>' Width="50px" />
                            <asp:RegularExpressionValidator ID="RegularExpWeightBox"
                                ControlToValidate="InputText1" runat="server" ErrorMessage="Illegal"
                                ValidationExpression="^[0-9]{0,5}$" class="regExpress">
                            </asp:RegularExpressionValidator>
                        </ItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Status">
                        <ItemTemplate>
                            <asp:DropDownList ID="STATUSDDL" AppendDataBoundItems="True" runat="server">
                            </asp:DropDownList>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Input Textbox2">
                        <ItemTemplate>
                            <asp:TextBox ID="InputTextbox2" runat="server" TextMode="MultiLine" Width="200" Rows="2" />
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>

我尝试使用 onclick 事件来触发按钮或触发将触发按钮的 javascript 函数。在这两种情况下,我都无法将按钮与文本框隔离在同一行。任何帮助将不胜感激。

【问题讨论】:

    标签: javascript c# asp.net gridview


    【解决方案1】:

    好的,我有一个解决我的困境的方法。

    我最终做的是向 ondatabound 方法添加一个属性来调用 javascript 函数。我通过找到每个控件并将其传递给属性来获取按钮 ID。这是C#

    protected void gv_GridDataBound(object sender, GridViewRowEventArgs e)
    {
        Button b_l_updateButton = (Button)e.Row.FindControl("UpdateBtn1");
        e.Row.Attributes.Add("onkeydown", String.Format("RunUpdate(event,'{0}');", b_l_updateButton.ClientID));
    }
    

    这里是javascript

    function RunUpdate(e, UpdateButtonID) {
            var keynum
    
            if (window.event) 
            {
                keynum = e.keyCode
            }
            else if (e.which) 
            {
                keynum = e.which
            }
            if (keynum == 13) {
                document.getElementById(UpdateButtonID).click();
            }
        }    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 1970-01-01
      • 2013-11-27
      • 1970-01-01
      相关资源
      最近更新 更多