[英]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>
谢谢您的帮助! 我希望这是足够的信息来解决这个任务。
您可以将GridView
和FilterDropDownList
放入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.