我试图更新DataList中的多个已检查行。
我的aspx页面:
hiddenimports=["Tkinter", "FileDialog"],
我的代码背后:
<asp:DataList ID="DLSearchResultsReps" runat="server" RepeatLayout="Flow" RepeatDirection="Horizontal" ClientIDMode="Static">
<ItemTemplate>
<tr class="<%# DateTime.Parse(Eval("Date").ToString()) < DateTime.Today.AddDays(-GlobalFunctions.RepsLongTime) ? "red lighten-4" : " " %>">
<td width="15%"><%# Eval("RepId") %></td>
<td width="10%" class="red-text"><b><%# Eval("Envelop") %></b></td>
<td width="15%"><%# Eval("Date") %></td>
<td width="20%"><%# Eval("CustomerFirst") %> <%# Eval("CustomerLast") %></td>
<td width="20%"><%# Eval("Product") %></td>
<td width="15%"><%# Eval("Status") %></td>
<td width="5%">
<asp:CheckBox ID="cbCheckedRep" runat="server" DataKeyField ='<%# Eval("RepId") %>' />
<input type="hidden" id="HiddenRepId" value="<%# Eval("RepId") %>" />
</td>
</tr>
</ItemTemplate>
</asp:DataList>
if(cbCheckedRep.Checked)始终为FALSE。
感谢。
答案 0 :(得分:1)
cbCheckedRep.Checked
始终为false
,因为cbCheckedRep
本身始终为null
。您的代码永远不会达到if (cbCheckedRep.Checked)
。这是因为您在寻找HtmlInputCheckBox
时正试图找到CheckBox
。所以改变
HtmlInputCheckBox cbCheckedRep = objitem.FindControl("cbCheckedRep") as HtmlInputCheckBox;
到
CheckBox cbCheckedRep = objitem.FindControl("cbCheckedRep") as CheckBox;
如果您要使用普通输入标记而不是像HtmlInputCheckBox
这样的控件,则使用<input type="checkbox" id="cbCheckedRep" runat="server" />
。
答案 1 :(得分:1)
解决!
我必须添加if(!IsPostBack)
if (!IsPostBack)
{
try
{
DLSearchResultsReps.DataSource = GlobalFunctions.GetRepsum(Session["branchid"].ToString(), 100, status.ToString(), producer);
DLSearchResultsReps.DataBind();
if (DLSearchResultsReps.Items.Count > 0) // Any Results?
{
SearchResultsRepsPanel.Visible = true;
}
}
catch
{
Response.Redirect("error.aspx?msg=ERROR!");
}
}
}