Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

176
Views
El cuadro de lista es nulo al eliminar elementos del lado del cliente

Heredé un proyecto de formularios web y todavía soy algo nuevo en el desarrollo web. En esta página, tenemos 2 cuadros de lista: lstCaseLoad, que se completa con "Casos" (números de identificación) y lstAssignedCaseLoad, que se completa con Casos seleccionados por el usuario del formulario. El usuario puede seleccionar Cargas de casos de lstCaseLoad y pulsar un botón para eliminarlas y transferirlas a lstAssignedCaseLoad, que se realiza en el lado del cliente con JavaScript. El usuario también puede hacer lo contrario, eliminando de lstAssigned a lstCaseLoad en el lado del cliente. El usuario debe presionar el botón Enviar que publicará y guardará los cambios en SQL.

Agregar nuevos CaseLoads de lstCaseloads a lstAssigned y enviar funciona bien. Eliminar de lstAssigned es donde tengo problemas. lstAssigned parece volverse nulo cuando se envía y, por lo tanto, no se puede guardar. Código a continuación.

Cuadros de lista:

 <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; });

Código detrás

 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); }

Intenté buscar y no puedo encontrar el mismo problema. ¡Gracias por tu tiempo y ayuda!

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Esto se debe al atributo "seleccionado" de la opción en el cuadro de lista. Si selecciona la opción en "lstCaseLoad" que no tiene el atributo "seleccionado" y hace clic en el botón Eliminar, se agregará a "lstAssigned", pero la opción agregada tampoco tiene este atributo "seleccionado" porque estamos clonando. Entonces, si desea hacer el proceso inverso, debe seleccionar (hacer clic) esa opción nuevamente desde "lstAssigned" antes de hacer clic en eliminar. Puede observar el comportamiento del atributo "seleccionado" inspeccionando las opciones antes de hacer clic en el botón.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!