• silverlight中 ComboBox绑定数据库,并获取当前选定值


    silverlight中 ComboBox绑定数据库,并获取当前选定值

    在silverlight中 用combobox下拉菜单绑定数据库的方法和用DataGrid绑定数据库的方法类似。

    page.xaml.cs代码:

      //调用获取 企业联系人姓名

                ServiceReference1.Class2 qyLXR = new Class2();

                ServiceReference1.Service1Client obj_qyl = new Service1Client();

                obj_qyl.qylxrCompleted += new EventHandler<qylxrCompletedEventArgs>(obj_qyl_qylxrCompleted);

                obj_qyl.qylxrAsync(qyLXR);

            }

        void obj_qyl_qylxrCompleted(object sender,qylxrCompletedEventArgs e)

          {

              this.comboBox1.ItemsSource = e.Result;

           }

    page.xaml代码

    <ComboBox Height="23"  HorizontalAlignment="Left"   Margin="0,150,0,0" Name="comboBox1" VerticalAlignment="Top" Width="159"  Grid.Row="4" Grid.Column="1" SelectionChanged="comboBox1_SelectionChanged"  DisplayMemberPath="Name" >  </ComboBox>

    DisplayMemberPath="Name" //Name为自定义的实体类中要绑定的属性名称

    至此,silverlight中ComboBox绑定数据库已完成,下面将是获取选中值

      page.xaml.cs代码 

      private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)

            {

            Qiyelianxiren ql  = comboBox1.SelectedItem as Qiyelianxiren;//实体类 ql=comboBox1.SelectedItem as 实体类---获取combobox选定值

              MessageBox.Show(ql.Name.Trim());//显示选中值

    /*如果需要把选中值传给其他页,则可以这么写:

        Qiyelianxiren ql = comboBox1.SelectedItem as Qiyelianxiren;

               cs.Name = ql.Name.Trim();*/

            }

    silverlight中Combobox获取值完成

    后记:

    之前在完成这个功能时,主要遇到了两个问题:

    1、combobox无法绑定数据库,原因是数据绑定错误。之前WCF服务调用失败,是因为数据调用列出现了问题

    例如: public List<Qiyelianxiren> qylxr()

             {

                 List<Qiyelianxiren> qyLXR = new List<Qiyelianxiren>();

                 //SqlConnection objConnection = new SqlConnection(str);

                 //objConnection.Open();

                 //SqlCommand objCommand = new SqlCommand("select 姓名 from 企业联系人",objConnection);

                 //objCommand.CommandType = CommandType.Text;

                 //DataSet ObjDataset = new DataSet();

                 //SqlDataAdapter objAdapater = new SqlDataAdapter(objCommand);

                 SqlConnection objConnection = new SqlConnection(str);

                 DataSet ObjDataset = new DataSet();

                 SqlDataAdapter objAdapater = new SqlDataAdapter();

                 SqlCommand objCommand = new SqlCommand("select 姓名 from 企业联系人");

                 objConnection.ConnectionString = str;

                 objConnection.Open();

                 objCommand.Connection = objConnection;

                 objAdapater.SelectCommand = objCommand;

                 objAdapater.Fill(ObjDataset);

                 for (int i = 0; i < ObjDataset.Tables[0].Rows.Count; i++)

                 {

                    Qiyelianxiren a = new Qiyelianxiren();

                    a.Name = ObjDataset.Tables[0].Rows[i][0].ToString();

                    qyLXR.Add(a);

                 }

                 objConnection.Close();

                 return qyLXR;

             }把 a.Name = ObjDataset.Tables[0].Rows[i][0].ToString();写成了 a.Name = ObjDataset.Tables[0].Rows[i][1].ToString();

    查询结果中只有一列值,所以应为[i][0],没有[i][1]这个位置。

    2、无法获取选中值。主要问题是获取的值不是选中的值,而是选中的值所在的命名空间。原因是实体类写错了

    例如:Qiyelianxiren ql  = comboBox1.SelectedItem as Qiyelianxiren;被写成了 

    combobcox cb=comboBox1.SelectedItem as ComboBox;

    在网上查询过类获取值的问题,基本上都是类似的

    诸如

    selectedvalue

    SelectedIndex等貌似获取的都不是选中值,我并没有具体去研究,随着学习的深入,应该会清楚他们的用法的。

  • 相关阅读:
    Tomcat 容器的安全认证和鉴权
    Tomcat 中的 Session 和 Cookie
    Tomcat 类加载器的实现
    Tomcat 对静态资源的处理
    Tomcat 路由请求的实现 Mapper
    Tomcat 配置文件解析工具 Digester
    Tomcat 容器的设计和实现
    ArrayList 和 LinkedList 源码分析
    Mybatis自定义分布式二级缓存实现与遇到的一些问题解决方案!
    Dubbo序列化多个CopyOnWriteArrayList对象变成同一对象的一个大坑!!
  • 原文地址:https://www.cnblogs.com/meimao5211/p/3436297.html
Copyright © 2020-2023  润新知