C# 在包含多选列表框中的选择的代码隐藏中获取字符串?
我想做的是从milti select列表框中获取所有选定项,并将它们放入逗号分隔的字符串中,这样我就可以将其存储在表中。我搜索并找到了代码,但由于某种原因,该限定符从未被发现为“true”。它会将每个选定项视为“false”。我的处理顺序不对吗 这是我的ASP部分(因为它是一个巨大的文件,所以被剪切,但这是重要的内容):C# 在包含多选列表框中的选择的代码隐藏中获取字符串?,c#,asp.net,.net,C#,Asp.net,.net,我想做的是从milti select列表框中获取所有选定项,并将它们放入逗号分隔的字符串中,这样我就可以将其存储在表中。我搜索并找到了代码,但由于某种原因,该限定符从未被发现为“true”。它会将每个选定项视为“false”。我的处理顺序不对吗 这是我的ASP部分(因为它是一个巨大的文件,所以被剪切,但这是重要的内容): 是否将列表框也进行回发数据绑定?检查属性: protected void Page_Load(Object sender, EventArgs e) { if(!IsP
是否将
列表框
也进行回发数据绑定?检查属性:
protected void Page_Load(Object sender, EventArgs e)
{
if(!IsPostBack) DataBindListBox();
}
我认为这是因为您的列表位于updatepanel中,其回发是“有条件的”,而按钮位于updatepanel的“外部” 尝试将其“放入”更新面板中,如本教程所示:
或者,如同一教程中所述,将按钮指定为“触发器”。您注释掉的“foreach”是否也会发生同样的情况?是的。它只是从来没有看到listitem。选择为“true”。我尝试了触发器。没有变化。当我逐步浏览代码时,我可以看到表单上突出显示的选定列表框项目,但当代码逐步浏览列表框中的每个项目时,仍然找不到列表框。对于其中任何一项,选择为“true”。它确实读取列表框中的所有项目,只是不认为选择了任何项目。
protected void btnSubmit_OnClick(object sender, EventArgs e)
{
// Read the selected items from the listbox
//string SQLCode = "";
var selectedQuery = ddlSysDocChg.Items.Cast<ListItem>().Where(item => item.Selected);
string SQLCode = String.Join(",", selectedQuery).TrimEnd();
//foreach (ListItem listitem in ddlSysDocChg.Items)
// {
// if (listitem.Selected == true)
// {
// SQLCode = SQLCode + ", " + listitem;
// }
// }
}
try
{
string strSQL = "SELECT ComboValue, ComboText FROM dbo.tblComboBoxes WHERE ComboName = 'ddlSysDocChg' ORDER BY ComboText ASC;";
SqlDataAdapter adapter = new SqlDataAdapter(strSQL, str);
DataSet DailyRun = new DataSet();
adapter.Fill(DailyRun);
ddlSysDocChg.DataSource = DailyRun;
ddlSysDocChg.DataTextField = "ComboText";
ddlSysDocChg.DataValueField = "ComboValue";
ddlSysDocChg.DataBind();
foreach (ListItem item in ddlSysDocChg.Items)
{
item.Attributes.Add("Title", item.Text);
}
// Insert a blank row into the DropDownLists so there is no default name
ddlSysDocChg.Items.Insert(0, new ListItem("", ""));
}
catch (Exception ex)
{
// Handle the error
Console.WriteLine("Making Call to " + ex + "");
}
}
}
protected void Page_Load(Object sender, EventArgs e)
{
if(!IsPostBack) DataBindListBox();
}