ASP.Net C#在GridView中选择行而不更新整个页面

问题描述 投票:0回答:1

我正在尝试为我的GridView创建一些过滤器。筛选器工作正常,但是如果我然后选择筛选后的GridView的一列,则整个页面都在刷新...

这里是我的FilterCode:

        protected void Filter_Berechtigung_DB_SelectedIndexChanged(object sender, EventArgs e)
        {
            List<User> ll_UserList = new List<User>();

            foreach (var User in ReadZugriff())
            {
                if (User.Berechtigung.Contains(Filter_Berechtigung_DB.SelectedItem.Value))
                {
                    ll_UserList.Add(User);
                }
            }
            // Läd die gefilterten Infos in das Datagrid
            LoadData(ll_UserList);
        }

这里是我的LoadData:

        private void LoadData(List<User> ll_UserList)
        {
            UserTable.DataSource = ll_UserList;
            UserTable.DataBind();
        }

我在页面加载开始时一次调用方法LoadData

这里是我的SelectedIndexChanged:

        protected void UserTable_SelectedIndexChanged(object sender, EventArgs e)
        {
            var lv_Index = UserTable.SelectedIndex;

            UserTable.Rows[lv_Index].Style[HtmlTextWriterStyle.BackgroundColor] = "lightgray";
        }

这里是我的GridView和使用的按钮:

                    <div style="float: left">
                        <ul>
                            <li style="float: left; margin-right: 5px">Berechtigung:
                            </li>
                            <li style="float: left">
                                <asp:DropDownList Style="height: 25px; width: 100px; font-size: 12px; margin-top: -2px" ID="Filter_Berechtigung_DB" runat="server" AutoPostBack="True" OnSelectedIndexChanged="Filter_Berechtigung_DB_SelectedIndexChanged">
                                    <asp:ListItem Text="" />
                                </asp:DropDownList>
                            </li>
                        </ul>
                    </div>
                    <asp:GridView ID="UserTable" runat="server" AutoGenerateColumns="False" Width="100%" CssClass="table table-striped table-bordered" OnSelectedIndexChanged="UserTable_SelectedIndexChanged" CellPadding="4" CellSpacing="2" ForeColor="Black">
                        <Columns>
                            <asp:BoundField HeaderText="" DataField="">
                                <ItemStyle Font-Names="Arial" ForeColor="Black" />
                            </asp:BoundField>
                            <asp:CommandField ShowSelectButton="True" />
                        </Columns>
                        <HeaderStyle BackColor="lightgray" ForeColor="Black" />
                        <RowStyle CssClass="TableItemHover" BackColor="White"></RowStyle>
                        <SelectedRowStyle BackColor="gray" Font-Bold="True" ForeColor="Black" />
                    </asp:GridView>

感谢您的帮助!我希望这是解决任务的足够信息。

c# asp.net gridview pageload selectedindex
1个回答
0
投票

您可以将GridViewFilterDropDownList放入UpdatePanel以防止所有页面回发:

<asp:UpdatePanel ID="myUpdatePanel" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false">
    <ContentTemplate>
        <div style="float: left">
            <ul>
                <li style="float: left; margin-right: 5px">Berechtigung:
                </li>
                <li style="float: left">
                    <asp:DropDownList Style="height: 25px; width: 100px; font-size: 12px; margin-top: -2px" ID="Filter_Berechtigung_DB" runat="server" AutoPostBack="True" OnSelectedIndexChanged="Filter_Berechtigung_DB_SelectedIndexChanged">
                        <asp:ListItem Text="" />
                    </asp:DropDownList>
                </li>
            </ul>
        </div>
        <asp:GridView ID="UserTable" runat="server" AutoGenerateColumns="False" Width="100%" CssClass="table table-striped table-bordered" OnSelectedIndexChanged="UserTable_SelectedIndexChanged" CellPadding="4" CellSpacing="2" ForeColor="Black">
            <Columns>
                <asp:BoundField HeaderText="" DataField="">
                    <ItemStyle Font-Names="Arial" ForeColor="Black" />
                </asp:BoundField>
                <asp:CommandField ShowSelectButton="True" />
            </Columns>
            <HeaderStyle BackColor="lightgray" ForeColor="Black" />
            <RowStyle CssClass="TableItemHover" BackColor="White"></RowStyle>
            <SelectedRowStyle BackColor="gray" Font-Bold="True" ForeColor="Black" />
        </asp:GridView>
     </ContentTemplate>
     <Triggers>
         <asp:PostBackTrigger ControlID="Filter_Berechtigung_DB" EventName="OnSelectedIndexChanged" />
     </Triggers>
</asp:UpdatePanel>
© www.soinside.com 2019 - 2024. All rights reserved.