3

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

我的代码是这个

<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>
4

3 回答 3

2

我们可以在 gridview 中获取一个隐藏字段,然后单击 girdview 行,这意味着在选定的索引事件上,找到选定行中的隐藏字段,我们可以将其设为 1 。现在通过每一行的循环,我们可以找到隐藏字段值为 1 的行

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

在选择和取消选择的情况下,我们可以切换隐藏字段的值

于 2013-08-06T11:27:07.843 回答
0

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

于 2013-08-06T11:32:25.407 回答
0

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

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

该字符串的重要性是双重的,首先是网格的完全限定名称,其次是n. 它是您要选择的行的索引(从零开始)。之后,您需要GridViewSelectedRowStyle从任何当前选定的行中删除该类并将的更改class为。您可以通过选择它们轻松删除它们:<tr>GridViewSelectedRowStyle

$('.GridViewSelectedRowStyle').removeClass('GridViewSelectedRowStyle');.

添加它们可能会有点棘手,但是如果您将引用传递给<tr>单击它时,它应该非常简单。

于 2013-08-06T11:33:12.587 回答