CheckBoxList и четыре RadioButtonLists находятся в одном файле .aspx на разных панелях, связанных с разными ModalPopupExtenders из AjaxToolKit. Я не обрабатываю их события SelectedIndexChanged. Состояние элементов списка проверяется в обработчиках событий кнопки; кнопки также находятся на этих панелях. Состояние элементов CheckBoxList (в 'cblFlter') переходит к обработчику кнопки OK на панели со списком флажков. Состояние элементов RadioButtonLists (от 'obl0' до 'obl3') не переносится на обработчик кнопки OK на панели со списками переключателей: при отладке кода c # все четыре из них всегда имеют свои выбран первый переключатель, независимо от того, на какой переключатель я нажал, прежде чем нажимать на кнопку «ОК», и независимо от того, установили ли их свойства «Выбранные» разные для каждого списка переключателей в разметке.
Вот частичный список файла .aspx:
<%@ Page Title="List of Expenses" Language="C#" MasterPageFile="~/mTSoar.Master" AutoEventWireup="true" CodeBehind="Expenses.aspx.cs"
Inherits="TSoar.Accounting.FinDetails.ExpVendAP.Expenses" %>
<asp:Content ID="HeaderContent" ContentPlaceHolderID="ContentPlaceHolderHeader" runat="server">
<asp:Label runat="server" Text="Accounting - Bookkeeping - Expenses, Vendors, Accounts Payable - Expenses" Font-Italic="true" />
</asp:Content>
<asp:Content ID="MainContent" ContentPlaceHolderID="ContentPlaceHolderMain" runat="server">
<a href="XactExpense.aspx">Create New Expense Record</a>
.
.
.
<div id="ModPopExtFiltering">
<asp:LinkButton ID="LinkButton2" runat="server" Text="T" CssClass="displayNone" />
<ajaxToolkit:ModalPopupExtender ID="ModPopExtFilter" runat="server"
TargetControlID="LinkButton2" PopupControlID="MPE_PanelFilter"
BackgroundCssClass="background" />
<asp:Panel ID="MPE_PanelFilter" runat="server" CssClass="popup" style="display:none;" HorizontalAlign="Center">
Display those transactions with a status that is checked:
<p>
<asp:CheckBoxList ID="cblFilter" runat="server" RepeatDirection="Vertical" RepeatLayout="UnorderedList" >
<asp:ListItem>Active</asp:ListItem>
<asp:ListItem>Voided</asp:ListItem>
<asp:ListItem>Deleted</asp:ListItem>
<asp:ListItem>Template</asp:ListItem>
</asp:CheckBoxList>
</p>
<p> <asp:Button ID="pbFilterOK" runat="server" Text="OK" OnClick="pbFilterOKCancel_Click" />
<asp:Button ID="pbFilterCancel" runat="server" Text="Cancel" OnClick="pbFilterOKCancel_Click" />
</p>
</asp:Panel>
</div>
<div id="ModPopExtSorting">
<asp:LinkButton ID="LinkButton3" runat="server" Text="T" CssClass="displayNone" />
<ajaxToolkit:ModalPopupExtender ID="ModPopExtSort" runat="server"
TargetControlID="LinkButton3" PopupControlID="MPE_PanelSort"
BackgroundCssClass="background" />
<asp:Panel ID="MPE_PanelSort" runat="server" CssClass="popup" style="display:none;" HorizontalAlign="Center">
<table style="align-self:center">
<tr>
<td</td><td></td><td></td>
<td>Sort Priority</td>
</tr>
<tr>
<th></th><th> </th>
<th><asp:Label runat="server" Text="1 2 3 4" Font-Size="Medium" /></th>
</tr>
<tr>
<td>Date</td><td></td>
<td><asp:RadioButtonList ID="obl0" runat="server" RepeatColumns="4" RepeatDirection="Horizontal" RepeatLayout="Table"
EnableViewState="true" ViewStateMode="Enabled">
<asp:ListItem> </asp:ListItem>
<asp:ListItem> </asp:ListItem>
<asp:ListItem> </asp:ListItem>
<asp:ListItem Selected="True"> </asp:ListItem>
</asp:RadioButtonList>
</td>
</tr>
<tr>
<td>Vendor</td><td></td>
<td><asp:RadioButtonList ID="obl1" runat="server" RepeatColumns="4" RepeatDirection="Horizontal" RepeatLayout="Table"
EnableViewState="true" ViewStateMode="Enabled">
<asp:ListItem> </asp:ListItem>
<asp:ListItem> </asp:ListItem>
<asp:ListItem Selected="True"> </asp:ListItem>
<asp:ListItem> </asp:ListItem>
</asp:RadioButtonList>
</td>
</tr>
<tr>
<td>Status</td><td></td>
<td><asp:RadioButtonList ID="obl2" runat="server" RepeatColumns="4" RepeatDirection="Horizontal" RepeatLayout="Table"
EnableViewState="true" ViewStateMode="Enabled">
<asp:ListItem> </asp:ListItem>
<asp:ListItem Selected="True"> </asp:ListItem>
<asp:ListItem> </asp:ListItem>
<asp:ListItem> </asp:ListItem>
</asp:RadioButtonList>
</td>
</tr>
<tr>
<td>Amount</td><td></td>
<td><asp:RadioButtonList ID="obl3" runat="server" RepeatColumns="4" RepeatDirection="Horizontal" RepeatLayout="Table"
EnableViewState="true" ViewStateMode="Enabled">
<asp:ListItem Selected="True"> </asp:ListItem>
<asp:ListItem> </asp:ListItem>
<asp:ListItem> </asp:ListItem>
<asp:ListItem> </asp:ListItem>
</asp:RadioButtonList>
</td>
</tr>
</table>
<p> <asp:Button ID="pbSortOK" runat="server" Text="OK" OnClick="pbSortOKCancel_Click" />
<asp:Button ID="pbSortCancel" runat="server" Text="Cancel" OnClick="pbSortOKCancel_Click" />
</p>
</asp:Panel>
</div>
.
.
.
Вот частичный список файла .aspx.cs:
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TSoar.DB;
namespace TSoar.Accounting.FinDetails.ExpVendAP
{
public partial class Expenses : System.Web.UI.Page
{
.
.
.
protected void pbFilter_Click(object sender, EventArgs e)
{
DataTable dtTFilter = AccountProfile.CurrentUser.XactFilterSettings;
for (int i = 0; i < 4; i++)
{
cblFilter.Items[i].Selected = (bool)dtTFilter.Rows[i]["bFilter"];
}
ModPopExtFilter.Show();
}
protected void pbFilterOKCancel_Click(object sender, EventArgs e)
{
Button pb = (Button)sender;
switch (pb.ID)
{
case "pbFilterOK":
DataTable dtTFilter = AccountProfile.CurrentUser.XactFilterSettings;
for (int i = 0; i < 4; i++)
{
dtTFilter.Rows[i]["bFilter"] = cblFilter.Items[i].Selected;
}
AccountProfile.CurrentUser.XactFilterSettings = dtTFilter;
DisplayGrid();
break;
default:
break;
}
}
protected void pbSort_Click(object sender, EventArgs e)
{
RadioButtonList[] obla = new RadioButtonList[4];
obla[0] = obl0;
obla[1] = obl1;
obla[2] = obl2;
obla[3] = obl3;
DataTable dtTSort = AccountProfile.CurrentUser.XactSortSettings;
int rowIndex = 0;
foreach(DataRow dr in dtTSort.Rows)
{
obla[rowIndex].ClearSelection();
obla[rowIndex].Items[(int)dr["SortOrder"] - 1].Selected = true;
rowIndex++;
}
ModPopExtSort.Show();
}
protected void pbSortOKCancel_Click(object sender, EventArgs e)
{
Button pb = (Button)sender;
switch (pb.ID)
{
case "pbSortOK":
RadioButtonList[] obla = new RadioButtonList[4];
obla[0] = obl0;
obla[1] = obl1;
obla[2] = obl2;
obla[3] = obl3;
int iSum = 0;
foreach (XactSort.eSortBy es in Enum.GetValues(typeof(XactSort.eSortBy)))
{
for (int j = 1; j < 5; j++)
{
if (obla[(int)es].Items[j-1].Selected)
{
iSum += j * (int)(Math.Pow(10.0, j - 1) + 0.1);
}
}
}
if (iSum != 4321)
{
ProcessPopupException(new Global.excToPopup("Invalid Sort Priorities - each of Date, Vendor, Status, and Amount " +
"must be assigned a different sort priority between 1 and 4. [Checksum=" + iSum.ToString() + "]"));
}
else
{
DataTable dtTSort = AccountProfile.CurrentUser.XactSortSettings;
foreach(XactSort.eSortBy es in Enum.GetValues(typeof(XactSort.eSortBy)))
{
for (int j = 1; j < 5; j++)
{
if (obla[(int)es].Items[j-1].Selected)
{
dtTSort.Rows[(int)es]["SortOrder"] = j;
}
}
}
AccountProfile.CurrentUser.XactSortSettings = dtTSort;
DisplayGrid();
}
break;
default:
break;
}
}
}
}
.
.
.
Вам нужна дополнительная информация, чтобы помочь мне решить эту проблему?