繁体   English   中英

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

[英]ASP.Net C# Select Row in GridView without Updating the whole Page

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

这是我的过滤器代码:

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>

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

您可以将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:AsyncPostBackTrigger ControlID="Filter_Berechtigung_DB" EventName="SelectedIndexChanged" />
        <asp:AsyncPostBackTrigger ControlID="UserTable" EventName="SelectedIndexChanged" />
     </Triggers>
</asp:UpdatePanel>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM