【问题标题】:select only one checkbox in gridview and edit that checked row在gridview中只选择一个复选框并编辑选中的行
【发布时间】:2011-11-21 19:51:21
【问题描述】:

我有一个gridview,其中有一列作为asp复选框控件,我希望用户可以选中一个复选框并单击编辑按钮来编辑该行

我的代码是

                 <asp:GridView runat="server" CssClass="width" ID="gvGrades" AutoGenerateColumns="false" ShowHeader="true" OnRowCancelingEdit="gvGrades_RowCancelingEdit"                            OnRowCommand="gvGrades_RowCommand" OnRowDataBound="gvGrades_RowDataBound" OnRowEditing="gvGrades_RowEditing"                               OnRowUpdated="gvGrades_RowUpdated" OnRowUpdating="gvGrades_RowUpdating" OnRowDeleting="gvGrades_RowDeleting">
                            <Columns>
                                <asp:TemplateField>
                                    <HeaderTemplate>
                                        Select

                                    </HeaderTemplate>
                                    <ItemTemplate>
                                        <asp:CheckBox ID="chkSelect" class="asp" runat="server"  />

                                        <asp:Label ID="lblId" runat="server" Text='<%# Bind("id") %>' Visible="false"></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField>
                                    <HeaderTemplate>
                                        Grade Name
                                    </HeaderTemplate>
                                    <ItemTemplate>
                                        <asp:Label ID="lblName" runat="server" Text='<%# Bind("grade_name") %>'></asp:Label>
                                    </ItemTemplate>

                                 </asp:TemplateField>
                                <asp:TemplateField>
                                    <HeaderTemplate>
                                        Organization Name
                                    </HeaderTemplate>
                                    <ItemTemplate>
                                        <asp:Label ID="lblOrganizationName" runat="server" Text='<%# Bind("organization_name") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField>
                                    <HeaderTemplate>
                                        Minimum Basic Salary
                                    </HeaderTemplate>
                                    <ItemTemplate>
                                        <asp:Label ID="lblSalary" runat="server" Text='<%# Bind("min_basic_salary") %>'></asp:Label>
                                    </ItemTemplate>

                                </asp:TemplateField>
                                <asp:TemplateField>
                                    <ItemTemplate>
                                        <asp:LinkButton runat="server" ID="lnkDelete" CommandName="Delete" Text="Delete"></asp:LinkButton>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField>
                                    <ItemTemplate>
                                        <asp:LinkButton runat="server" ID="lnkEdit" CommandName="Edit" Text="Edit"></asp:LinkButton>
                                    </ItemTemplate>

                                </asp:TemplateField>
                            </Columns>
                        </asp:GridView>
                    </fieldset>
                </ContentTemplate>
            </asp:UpdatePanel>
            <asp:Button Text="Add" Width="70px" ID="btnAdd" runat="server" OnClick="btnAdd_Click" />&nbsp;&nbsp;
            <asp:Button Text="Edit" ID="btnEdit" Width="70px" runat="server" OnClick="btnEdit_Click"
                />

请同时提供编辑按钮点击代码

谢谢

【问题讨论】:

  • 到目前为止你尝试过什么?如果您自己付出了一些努力,我们将帮助您解决它。我们不是来为您工作的。
  • 我有一个回发代码,但我想通过 jquery 或 javascript 来完成

标签: c# javascript jquery asp.net


【解决方案1】:

使用可以使用GridView.SelectedIndexChanged事件。

你可能会这样做

<asp:TemplateField >
            <ItemTemplate>     
                <asp:CheckBox ID="chb1" AutoPostBack="true" runat="server" />
            </ItemTemplate>
 </asp:TemplateField>

您可以设置编辑字段enable=false,在回发中您可以设置enable=true

protected void GVSelectedIndexChanged(object sender, GridViewRowEventArgs e)
{
            var check = (CheckBox) e.Row.FindControl("chb1");
            if(check != null)
            {
                    // do something
            }
}

【讨论】:

    【解决方案2】:

    按照以下步骤启用无需回发的编辑按钮[使用 javascript]

    1. 注册Gridview的OnRowDataBound事件。

    2. 使用 itemindex [在 Onrowbound 事件中] 找到复选框和编辑按钮

    3. 找到复选框后,使用参数[编辑按钮ID]注册javascript函数onchange事件

    4. 然后你会得到javascript中的Edit按钮

    5. 放上javascript启用代码。

    如果您有任何问题或疑问,请告诉我。

    【讨论】:

      猜你喜欢
      • 2022-07-11
      • 1970-01-01
      • 2018-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-06
      • 2017-08-10
      相关资源
      最近更新 更多