使用单选按钮

时间:2017-04-21 13:11:30

标签: c# asp.net gridview

我在gridview中显示数据,用户将通过选择radiobutton来确认或取消记录。 Radiobuttonlist包含两个radiobutton确认或取消,并填充gridview Like this中的每个记录 但是对于gridview来说分页是正确的,我无法一次确认/取消所有记录,只有页面显示的记录被确认/取消。

我尝试了这个解决方案但是在点击confirmAll按钮后它无效,gridview被隐藏了。

protected void BtnCanclAll_Click(object sender, EventArgs e)
{
    grdGSMCheckerDetails.AllowPaging = false;
    grdGSMCheckerDetails.DataSource = BindGrid();//getting data from database
    grdGSMCheckerDetails.DataBind();
    foreach (GridViewRow row in grdGSMCheckerDetails.Rows)
    {
        RadioButtonList rb = (RadioButtonList)row.FindControl("Radio1");
        //if (rb.SelectedItem != null)
        rb.SelectedValue = "0";
    }
    ScriptManager.RegisterStartupScript(this, this.GetType(), "popup", "alert('Now Press Update Button to Cancel All.');", true);
    grdGSMCheckerDetails.AllowPaging = true;
    grdGSMCheckerDetails.DataSource = BindGrid();
    grdGSMCheckerDetails.DataBind();
}

这是我的gridview代码:

<asp:GridView ID="grdGSMCheckerDetails" runat="server" AutoGenerateColumns="False" AllowSorting="true" ShowHeader="True" CellPadding="5"
                ForeColor="#333333" GridLines="Both" AllowPaging="true" PageSize="10" OnSorting="grdGSMCheckerDetails_Sorting" OnPageIndexChanging="grdGSMCheckerDetails_PageIndexChanging" OnRowDataBound="grdGSMCheckerDetails_RowDataBound">
                <PagerStyle CssClass="gridview" BackColor="#7779AF" Font-Bold="true" ForeColor="White" />
                <RowStyle BackColor="#E3EAEB" />
                <Columns>
                    <asp:TemplateField HeaderText="Confirm/Cancel">
                        <ItemTemplate>
                            <asp:RadioButtonList ID="Radio1" runat="server">
                                <asp:ListItem Value="1" Text="Confirm" Selected="False" />
                                <asp:ListItem Value="0" Text="Cancel" />
                            </asp:RadioButtonList>
                        </ItemTemplate>
                        <HeaderStyle Font-Names="verdana,arial,helvetica,sans-serif" Font-Size="12px" ForeColor="White" />
                        <ItemStyle Font-Size="12px" HorizontalAlign="Left"/>
                    </asp:TemplateField>

                    <asp:BoundField DataField="SCRIP_CODE" SortExpression="SCRIP_CODE" HeaderText="Scrip Code" ItemStyle-HorizontalAlign="Left" HeaderStyle-Font-Names="verdana, arial, helvetica, sans-serif" HeaderStyle-Font-Size="11px" ItemStyle-Font-Size="12px" HeaderStyle-Width="8900px">
                        <HeaderStyle Font-Names="verdana,arial,helvetica,sans-serif" Font-Size="12px" ForeColor="White"></HeaderStyle>
                        <ItemStyle HorizontalAlign="Left" Font-Size="12px"></ItemStyle>
                    </asp:BoundField>

                    <asp:BoundField DataField="LISTED_STATUS" SortExpression="LISTED_STATUS" HeaderText="Listed Status" ItemStyle-HorizontalAlign="Left" HeaderStyle-Font-Names="verdana, arial, helvetica, sans-serif" HeaderStyle-Font-Size="11px" ItemStyle-Font-Size="12px" HeaderStyle-Width="8900px">
                        <HeaderStyle Font-Names="verdana,arial,helvetica,sans-serif" Font-Size="12px" ForeColor="White"></HeaderStyle>
                        <ItemStyle HorizontalAlign="Left" Font-Size="12px"></ItemStyle>
                    </asp:BoundField>
                </Columns>

                <PagerStyle BackColor="#016091" Font-Bold="False" ForeColor="White" />
                <RowStyle BackColor="#E3EAEB" />
                <FooterStyle BackColor="#016091" ForeColor="White" Font-Bold="True" />
                <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
                <EditRowStyle BackColor="#7C6F57" />
                <AlternatingRowStyle BackColor="White" />
                <HeaderStyle Height="2px" BackColor="#016091" Font-Bold="False" Font-Size="14px" ForeColor="Black" HorizontalAlign="Left" />
            </asp:GridView>

我希望确认/取消单选按钮,以便在点击confirmAll / cancelAll按钮时选择网格中的所有记录

1 个答案:

答案 0 :(得分:0)

首先,如果它是分页网格,你为什么要选择用户甚至看不到的单选按钮?只需选择当前页面中的按钮并设置一个标志以确认所有按钮并在更新按钮上单击

在页面中放置一个隐藏字段

<asp:HiddenField ID="hfConfirmAll" value="false" >

在确认所有按钮单击后,将隐藏字段设为true并使用JavaScript(而非服务器端)选择可见的单选按钮

在更新按钮上单击检查hfConfirmAll如果为true则更新所有记录,否则仅更新所选记录