在gridview中选择多行而不使用复选框

时间:2013-08-06 11:17:59

标签: c# asp.net

是否可以在网格视图中选择多行而不使用复选框?

我的代码就是这个

<asp:GridView ID="Grid_add_data" runat="server" AutoGenerateColumns="False" BackColor="White"
     ShowFooter="True" CssClass="mGrid" meta:resourcekey="Grid_add_dataResource1">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBox ID="chkRows" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="From Time" meta:resourcekey="TemplateFieldResource1">
            <ItemTemplate>
                <asp:Label ID="Lbl_from_time" runat="server" Text='<%# Bind("FromTime") %>' meta:resourcekey="Lbl_from_timeResource1"></asp:Label></ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="To Time" meta:resourcekey="TemplateFieldResource2">
            <ItemTemplate>
                <asp:Label ID="Lbl_to_time" runat="server" Text='<%# Bind("ToTime") %>' meta:resourcekey="Lbl_to_timeResource1"></asp:Label></ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Quantum(MW)" meta:resourcekey="TemplateFieldResource3">
            <ItemTemplate>
                <asp:Label ID="Lbl_quantum" runat="server" Text='<%# Bind("Quantum") %>' meta:resourcekey="Lbl_quantumResource1"></asp:Label></ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <EditRowStyle CssClass="GridViewSelectedRowStyle" VerticalAlign="Top" />
    <FooterStyle CssClass="GridViewFooterStyle" />
    <HeaderStyle BackColor="#6699FF" CssClass="GridViewHeaderStyle" Font-Bold="True"
        ForeColor="White" VerticalAlign="Bottom" />
    <PagerStyle CssClass="GridViewPagerStyle" />
    <RowStyle CssClass="GridViewRowStyle" HorizontalAlign="Center" VerticalAlign="Top" />
    <SelectedRowStyle CssClass="GridViewSelectedRowStyle" VerticalAlign="Top" />
</asp:GridView>

3 个答案:

答案 0 :(得分:1)

我们可以在gridview中取一个隐藏字段,点击girdview行,意味着在选定的索引事件上,找到所选行中的隐藏字段,我们可以将其设为1。 现在有了每行的循环,我们可以找到隐藏字段值为1的行

这就是我认为我们可以实现的方式,

在select和de select的情况下,我们可以切换隐藏字段的值

答案 1 :(得分:0)

您必须使用变量/列表(最好是客户端)进行解决,其中单击每一行会在该变量中插入所选行的ID(在多行的情况下以逗号分隔)。如果id已经存在,那么从该变量中删除该id(假设该行被单击两次而不再需要选择)。

答案 2 :(得分:0)

这将是一个双重过程。第一个是发出适当的回调。如果你愿意的话,你可以通过$.ajax电话来做到这一点,但看起来像这样:

javascript:__doPostBack(&#39;ctl00$MainContent$GridView1&#39;,&#39;Select$**n**&#39;)

该字符串的重要性有两个,首先是网格的完全限定名称,第二个是n。它是您要选择的行(从零开始)的索引。之后,您需要从当前选定的任何行中删除课程GridViewSelectedRowStyle,并将class的{​​{1}}更改为<tr>。您可以通过选择它们轻松删除它们:

GridViewSelectedRowStyle

添加它们可能会有点棘手,但是如果你在点击它时将引用传递给$('.GridViewSelectedRowStyle').removeClass('GridViewSelectedRowStyle');. ,它应该非常简单。