我有一個datalist控件,每個ItemTamplate中有一個複選框。隨着複選框,還有一個超鏈接來顯示一些文件。用戶應該能夠點擊一個複選框,該複選框將使用StringBuilder在標籤控件中顯示相應的文檔。下面的代碼幾乎可以工作,但它顯示重複:例如,如果我選中第1行中的複選框,然後選擇第2行中的另一複選框,則Label控件將顯示第1行中的文檔兩次,然後顯示第2行中的文檔一旦。這是相關的代碼。謝謝!asp.net datalist複選框獲得唯一選擇
<tr runat="server" id="tr_data">
<td>
<asp:CheckBox runat="server" ID="cb_docid" Value='<%# Eval("docid") %>' OnCheckedChanged="displayselectedinit"
AutoPostBack="true" />
<asp:HyperLink ID="hpl_docfileencr" Text='<%# Eval("docfileencr") %>' NavigateUrl='<%# "~/PDFEncr/" + DataBinder.Eval(Container.DataItem, "docfileencr") %>'
Target="_blank" runat="server" />
<br />
</td>
</tr>
protected void displayselected()
{
//return;
lbl_currselection.Text = "";
StringBuilder docselected = new StringBuilder();
foreach (DataListItem li in DataList1.Items)
{
if (li.ItemType == ListItemType.Item || li.ItemType == ListItemType.AlternatingItem)
{
CheckBox cb = li.FindControl("cb_docid") as CheckBox;
if (cb != null)
{
if (cb.Checked)
{
HyperLink hpl_docfile = li.FindControl("hpl_docfileencr") as HyperLink;
docselected.Append(hpl_docfile.Text + "<br />");
lbl_currselection.Text += docselected;
}
}
}
}
}
'displayselected'從無處調用。 – 2012-04-10 14:34:29
它被間接調用:displayselectedinit調用displayselected;我使用displayselected的原因是因爲它也是從另一個「全選」複選框中調用的;謝謝! – IrfanClemson 2012-04-10 14:36:38