c# - Multiple Selection in asp.net not working -
i using listbox in asp.net select multiple option not working multiple selection "program". first value among selected being inserted database. code behind .aspx.cs. below part of code multiple option selection , insertion. using multiple selection "program":
solution: updated code behind , worked.
.aspx page:
<asp:sqldatasource id="sqldatasource1" runat="server" connectionstring="<%$ connectionstrings:testconnectionstring %>" deletecommand="delete [database_table] [id] = @id" insertcommand="insert [database_table] ([firstname], [lastname], [address],[program] values (@firstname, @lastname, @address, @program)" selectcommand="select * [database_table]"> <deleteparameters> <asp:parameter name="id" type="int32" /> </deleteparameters> <insertparameters> <asp:parameter name="firstname" type="string" /> <asp:parameter name="lastname" type="string" /> <asp:parameter name="address" type="string" /> <asp:parameter name="program" type="string" /> </insertparameters> </asp:sqldatasource> <asp:listbox id="program" rows="10" selectionmode="multiple" runat="server"> <asp:listitem selected="true"></asp:listitem> <asp:listitem>option a</asp:listitem> <asp:listitem>option b</asp:listitem> <asp:listitem>option c</asp:listitem> <asp:listitem>option d</asp:listitem> <asp:listitem>option e</asp:listitem> <asp:listitem>option f</asp:listitem> <asp:listitem>option g</asp:listitem> <asp:listitem>option h</asp:listitem> <asp:listitem>option i</asp:listitem> </asp:listbox> updated code behind .aspx.cs:
if (error_type == "") { sqldatasource1.insertparameters["firstname"].defaultvalue = firstname.text; sqldatasource1.insertparameters["lastname"].defaultvalue = lastname.text; sqldatasource1.insertparameters["address"].defaultvalue = address.text; string items = string.empty; string items_updated = string.empty; foreach (listitem item in program.items) { if (item.selected) { items += item.text + ","; } } if (!string.isnullorempty(items)) { items_updated = items.remove(items.lastindexof(",")); } sqldatasource1.insertparameters["program"].defaultvalue = items_updated; sqldatasource1.insertparameters["program"].defaultvalue = program.selecteditem.text; sqldatasource1.insert(); response.redirect("http://www.example.org/success.aspx", false); } else { response.redirect("http://www.example.org/failure.aspx", false); } for program tried below didn't work selecting multiple options:
sqldatasource1.insertparameters["program"].defaultvalue = program.text; can please suggest if missing here?
i not sure of want achieve here, think did not provide enough information objective, although, @ first sight, seems missing loop on code iterate between selected items.
if trying insert 1 row per option in database, should use like:
foreach (listitem item in program.items) { if(item.selected) { sqldatasource1.insertparameters["firstname"].defaultvalue = firstname.text; sqldatasource1.insertparameters["lastname"].defaultvalue = lastname.text; sqldatasource1.insertparameters["address"].defaultvalue = address.text; sqldatasource1.insertparameters["program"].defaultvalue = item.text; sqldatasource1.insert(); } } otherwise, if want put options in single database row, recommend change database structure , add "optiontable". if not option you, , want options in 1 row, use like:
string items = string.empty; foreach (listitem item in program.items) { if(item.selected) { items &= item.text; } } sqldatasource1.insertparameters["firstname"].defaultvalue = firstname.text; sqldatasource1.insertparameters["lastname"].defaultvalue = lastname.text; sqldatasource1.insertparameters["address"].defaultvalue = address.text; sqldatasource1.insertparameters["program"].defaultvalue = items; sqldatasource1.insert();
Comments
Post a Comment