asp:DropDownList多个选择列表中的selectedvalues

时间:2014-09-09 12:54:50

标签: asp.net vb.net sqldatasource selectlist

我有asp:DropDownList,它是从SQLdatasource填充的,我需要在选择列表上设置选定的项目(asp:DropDownList或asp:DropDownList)。

这是我的代码:

      <asp:SqlDataSource runat="server" ID="sqlAihealueet"
 ConnectionString="Server=SQL2008;Database=Data;UID=123;PWD=123"
  SelectCommand="SELECT        TOP (100) PERCENT valikkoaktiivinen, alue, id, otsikko, osa1b, osa2b, osa3b, osa4b FROM            dbo.FiValikko"></asp:SqlDataSource>

  <asp:DropDownList  name="aihevalinta" id="aihevalinta"  multiple="true" DataSourceid="sqlAihealueet" DataValueField="id" DataTextField="otsikko"  class="populate placeholder"  style="width:450px; font-size:11px" runat="server">
            </asp:DropDownList> 

在这个页面上,我在代码隐藏上设置了所有其他字段,如下所示:

vapaaselite.text = drRow.Item("vapaaselitetxt").ToString

如何将多个选定的选项列入该选择列表?

我试过这个(aihealueet data =&#34; 9682,9683&#34;):

aihevalinta.SelectedValues = drRow.Item("aihealueet")

不工作,给我错误:SelectedValues&#39;不是System.Web.UI.WebControls.DropDownList

的成员

我是否可以直接从SQL数据源sql数据源创建选择项?我可以在SQLquery上轻松标记它们。

...或者我如何使用asp:Listbox执行此操作?我尝试了同样的方法。我只能选择一个项目。如果我尝试选择其他一个,则第一个选择的选择状态将消失。

aihevalinta.SelectedValue = "9565"
aihevalinta.SelectedValue = "9566"

enter image description here

对我来说,最好的解决方案是从SQldatasource标记选定的一个straigt(列表的形式相同)。数据将是这样的:

enter image description here

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望使用多个值填充DropDownList,如下所示: enter image description here

有可能,我这样做:

标记:

 <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True">
                    </asp:DropDownList>    

代码背后:

if (!IsPostBack)
        {
            SqlConnection con = new SqlConnection(strConnString);
            con.Open();
            str = "select * from Pagamenti ORDER BY [Data] DESC";
            com = new SqlCommand(str, con);
            sqlda = new SqlDataAdapter(com);
            ds = new DataSet();
            sqlda.Fill(ds, "Pagamenti");
            string spacer = "   --|--   ";
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                DropDownList1.Items.Add(string.Format("{0:Id ####}", ds.Tables[0].Rows[i]["Id"]) +
                                        spacer + Convert.ToDateTime(ds.Tables[0].Rows[i]["Data"]).ToString("dd/MM/yyyy") +
                                        spacer + string.Format("{0:R #.###,##}", (ds.Tables[0].Rows[i]["Somma"])));
            }
            con.Close();
        }

如果您正在寻找的话,请告诉我们。

答案 1 :(得分:0)

我不得不解决我的问题。我确信必须有更好的方法来做到这一点。

我的工作是使用一些jquery脚本和不可见的asp.net文本框字段(valinnatlista)完成的。

<script>

var data= $("#valinnatlista").val() ; 
var dataarray=data.split(",");

$("#aihevalinta").val(dataarray);
$("#aihevalinta").multiselect("refresh");

</script>