c# - ASP.Net C#在GridView中选择行而不更新整个页面
问题描述
我正在尝试为我的 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);
}
这是我的加载数据:
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>
谢谢您的帮助!我希望这是足够的信息来解决任务。
解决方案
您可以将GridView
andFilterDropDownList
放入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>
推荐阅读
- json - Json数据转换
- semantic-web - foaf:Person 和 schema.org/Person 是否相互兼容?还是更好地坚持其中之一?
- reactjs - react-navigation withNavigation 返回 undefined
- redirect - 告诉 Wildfly 在登录后重定向到 HTTPS,而不是在 HTTPS wildfly undertow-balancer 后面时重定向到 HTTP
- python - 在 Pandas Python 中组合两个数据框
- java - 如何在运行时在 android studio 中本地化 JSON 响应
- android - 如何使用谷歌标签管理器更新 Firebase Analytics,谷歌分析和旧版谷歌标签管理器(GTM)已经存在
- android - 未针对某些内部用户在 Play 商店中为 Alpha 测试人员更新应用程序
- reactjs - reactjs中如何获取父组件的目标?
- xamarin.forms - ipa 和 apk 大小问题