我一直在爲這一天打破了我的頭腦。 但我只是沒有看到它。複選框列表中的C#asp.net複選框始終未選中
我有一個名爲的CheckBoxList這cblRounds是
<asp:CheckBoxList ID="cblRondes" runat="server">
</asp:CheckBoxList>
另外需要注意的,是的EnableViewState設置爲true。
在背後說我的代碼,在Page_Load我填德名單如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
dpPrintRounds.FieldValue = DateTime.Now.AddDays(1);
}
FillCheckBoxList();
}
private void FillCheckBoxList()
{
tourCollectie = new LogisticsTourCollection();
RelationCollection rc = new RelationCollection(LogisticsItemEntity.Relations.LogisticsItemSpecsEntityUsingSeqSpecs);
rc.Add(LogisticsItemSpecsEntity.Relations.LocationEntityUsingSeqLocationDelivery);
rc.Add(LocationEntity.Relations.LocationLogisticsTourEntityUsingSeqLocation);
rc.Add(LocationLogisticsTourEntity.Relations.LogisticsTourEntityUsingSeqLogisticsTour);
PredicateExpression pe = new PredicateExpression(LogisticsItemSpecsFields.RequiredDeliveryDate == dpPrintRounds.FieldValue);
pe.Add(LogisticsItemFields.DeliveryNumber != DBNull.Value);
tourCollectie.GetMulti(pe, rc);
cblRondes.Items.Clear();
foreach (LogisticsTourEntity tour in tourCollectie)
{
cblRondes.Items.Add(new ListItem(tour.Name, tour.SeqLogisticsTour.ToString()));
}
}
然後我點擊一個按鈕,我檢查複選框的checkstate
protected void btnPrintHeaders_Click(object sender, EventArgs e)
{
PrintRounds();
}
private void PrintRounds()
{
if (dpPrintRounds.Date_Selected.HasValue)
{
Dictionary<string, string> rondes = new Dictionary<string, string>();
foreach (ListItem item in cblRounds.Items)
{
if (item.Selected)
{
rondes.Add(item.Value, GetDeliveryNumberFromRonde(item.Value));
}
}
}
}
一切正常,正確的除外if(item.Selected)總是返回false。
我也有
<td>
<rm:DatePicker ID="dpPrintRounds" runat="server" />
</td>
<td>
<asp:Button ID="btnSearch" runat="server" Visible="true"
onclick="btnSearch_Click" />
<%--<asp:Literal ID="litLogisticsRoundName" runat="server" />:--%>
</td>
的日期選擇器返回我用它來篩選我收藏的日期。 所以當我按下搜索按鈕時,我的複選框列表中會出現「新」複選框。 這就是爲什麼我沒有Fillcheckboxlist裏面的if(!IsPostBack)否則我沒有在新的搜索上的複選框。
我一直在尋找這個答案,並嘗試了幾件事情,但似乎沒有工作。 任何想法表示讚賞。
我做了,但它不會改變虛假的回報。 – Robin
我明白爲什麼這會起作用。但是如果我有一個動態地在複選框列表中選中複選框的按鈕會怎麼樣?我沒有預定義數量的複選框顯示在頁面上。我根據某個「集合」製作複選框,當我更改DatePicker字段並按下「搜索」按鈕時,此集合會發生變化。如果我對此不清楚,我很抱歉。 – Robin
@Robin - Put FillCheckBoxList();在IsPostBack塊內,什麼是dpPrintRounds? – adatapost