【发布时间】:2021-11-17 07:50:58
【问题描述】:
我继承了一个 Web Forms 项目,但对 Web 开发还是有点陌生。在此页面上,我们有 2 个列表框:lstCaseLoad,填充有“Caseloads”(ID 号)和 lstAssignedCaseLoad,填充有 Form User 选择的 Caseloads。用户可以从 lstCaseLoad 中选择 Caseloads,然后点击一个按钮将它们删除并传输到 lstAssignedCaseLoad,这是使用 JavaScript 在客户端完成的。用户也可以做相反的事情,从客户端的 lstAssigned 删除到 lstCaseLoad。用户必须点击提交按钮,该按钮将发布并保存对 SQL 的更改。
将新的 CaseLoads 从 lstCaseloads 添加到 lstAssigned 并提交工作正常。从 lstAssigned 中删除是我面临问题的地方。提交时 lstAssigned 似乎变为空,因此无法保存。代码如下。
列表框:
<asp:ListBox ID="lstCaseLoad" runat="server" SelectionMode="Multiple" />
<asp:ListBox ID="lstAssignedCaseLoad" runat="server" Height="175px" SelectionMode="Multiple" />
//Adding Caseload to Assigned
$("#btnAddCaseLoad").bind("click", function () {
var options = $("[id*=lstCaseLoad] option:selected");
$("[id*=lstAssignedCaseLoad]").append($(options).clone());
$(options).remove();
return false;
});
//Removing Caseload from Assigned
$("#btnRemoveCaseLoad").bind("click", function () {
var options = $("[id*=lstAssignedCaseLoad] option:selected");
$("[id*=lstCaseLoad]").append($(options).clone());
$(options).remove();
return false;
});
代码背后
protected void Page_Load()
{
if (!IsPostBack)
{
//Retrieving and Binding listboxes. No issues here
GetData();
BindData();
}
else
{
var test= Request.Form.AllKeys;
//Temp variable to check all elements for debugging. lstAssignedCaseLoad is missing when deleting. Is fine when adding new caseload
//Read listAssignedCaseLoad items to comma seperated strings. Becomes null when trying to remove items
string strCaseLoad = Request.Form[lstAssignedCaseLoad.UniqueID];
//Transfer string strCaseload to (field)List<string> for saving. Works fine when string is not empty
userCaseLoadList = ProcessListString(strCaseLoad, lstAssignedCaseLoad);
}
}
//Submit button method. Works as intended
protected void EditUser_Click(object sender, EventArgs e)
{
identityMgr.EditUser(Email.Text, userRoleList, userCaseLoadList);
}
我尝试搜索并找不到相同的问题。感谢您的时间和帮助!
【问题讨论】:
标签: javascript c# asp.net webforms listbox