我想從一個動態綁定的複選框列表控件中選擇的項目返回一個字符串沒有運氣。我希望有人能幫忙。在我的代碼背後,我正在向一個叫做用戶的類建立一個數據表。然後,我的數據表綁定到cblist中控制如何從asp.net中的checkboxlist控件返回選定的項目
private void populateUserList() //called on page load
{
SubmitOptions mySubmission = new SubmitOptions(juris, rptType, tmplName);
if (mySubmission.Users.Count == 0)
{
lbl_juris.Visible = false;
cb_selectUser.Visible = false;
lbl_AlertMsg.Visible = true;
btnSelect.Visible = false;
lbl_AlertMsg.Text = "No supervisors listed for jursidiction: " + juris.ToString();
}
else
{
dt.Columns.Add("Users");
for (int i = 0; i < mySubmission.Users.Count(); i++)
{
DataRow dr = dt.NewRow();
dr["Users"] = mySubmission.Users[i];
dt.Rows.Add(dr);
}
cb_selectUser.DataSource = dt;
cb_selectUser.DataBind();
}
}
在主aspx文件我已經控制定義爲:
<asp:CheckBoxList ID="cb_selectUser"
Width="400px"
Height="100%"
AutoPostBack="false"
runat="server"
CellPadding="2"
CellSpacing="5"
DataTextField="Users"
DataValueField="Users"
>
</asp:CheckBoxList>
我曾嘗試下面的代碼,我在列表itterate但這隻有當我將值作爲列表項硬編碼到Checkboxt列表中時才起作用。
protected void btn_returnUserList(object sender, System.Web.UI.ImageClickEventArgs e)
{
for (int i = 0; i < cb_selectUser.Items.Count; i++)
{
if (cb_selectUser.Items[i].Selected)
{
selectedUsers += cb_selectUser.Items[i].Text;
}
}
列表填充罰款和所有我想要做的就是在一個字符串從複選框列表控件中的所有選定的用戶的回報。
正如我所說,如果我硬編碼的項目值到控制上述代碼的作品,我可以看到字符串中選定的項目,但刪除itemslist標籤和切換到綁定nothign發生。上述方法計算返回的全部數量,但沒有選擇任何返回。
關於我缺少的任何提示或建議將不勝感激。
當測試這個我時,整個列表都是在列表中返回的。在你的例子中,你返回llist中的10個項目,但是如果只選擇了一個複選框項目,那麼字符串仍然會顯示全部10個項目。 – rlcrews 2010-09-22 16:38:05
對不起@randyc。我用'Where'子句更新了'Linq'表達式以僅獲取選定的項目。 – TheVillageIdiot 2010-09-22 16:43:11
非常感謝。我的Linq充其量是虛弱的,同時瞭解你在做什麼,我不確定在哪裏做出改變。再次感謝你的幫助。這是一個非常有效的解決方案。 – rlcrews 2010-09-22 16:57:47