如何实现两张表共用一个下拉框

如何实现两张表共用一个下拉框

我们平时做项目的时候会经常遇到下拉框绑定数据库表的数据,而最多的是绑定一张数据库表,偶尔也会遇到两张表甚至多张表的绑定,那么当遇到两张表的时候该怎么做呢?
其实假如两张表有关联的话还好办,主要是两张表之间没有关联就有点难度,方法其实不难,就是要想办法将两张表合成一张表,或者说是将一张表放到另一张表里面。
例子: 现在我要绑定经手人的数据放到下拉框里面,但是经手人的数据是由数据库的用户表和导购员表这两张表组成,效果图如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述
导购员表与用户表之间是没有关联的。
步骤:1、先绑定用户表的数据;
用户表数据后面的括号里面的数据是我要用到的,所以你们按实际情况来写,可以像导购员查询数据一样的查询方法。

//查询数据
List<SelectVo> listUser = (from tbUser in myModels.PW_User
        join tbUserType in myModels.PW_UserType on tbUser.UserTypeID equals tbUserType.UserTypeID
         select new SelectVo{
                 id = tbUser.UserID,
                 text = tbUser.UserName + "   " + "(" + tbUserType.UserTypeName + ")",
                 UserNum = tbUser.UserNum.Substring(tbUser.UserNum.Length - 4)
}).ToList();
foreach (var item in listUser)
{
        if (item.text == "管理员            (管理员)")
        {
               item.text = "管理员" + "(***" + item.UserNum + ")";
         }
}

2、再绑定导购员表的数据;

List<SelectVo> listShoppingGuide = (from tbShoppingGuide in myModels.PW_ShoppingGuide
                select new SelectVo{
                        id = tbShoppingGuide.ShoppingGuideID,
                        text = tbShoppingGuide.ShoppingGuideName,
}).ToList();

3、将导购员表数据添加到用户表里面。

listUser.AddRange(listShoppingGuide);

AddRange的定义是:将指定集合的元素添加到 List 的末尾;
所以在这里我是将导购员表添加到用户表数据的末尾。
完整的代码:
在控制器: 这里的写法是完整的两张表查询的代码,名字就是数据库表里面的名字。

public ActionResult searchUser()
{
     //查询数据
     List<SelectVo> listUser = (from tbUser in myModels.PW_User
               select new SelectVo{
                       id = tbUser.UserID,
                       text = tbUser.UserName
               }).ToList();
     List<SelectVo> listShoppingGuide = (from tbShoppingGuide in myModels.PW_ShoppingGuide
                select new SelectVo{
                         id = tbShoppingGuide.ShoppingGuideID,
                         text = tbShoppingGuide.ShoppingGuideName,
                 }).ToList();
      listUser.AddRange(listShoppingGuide);
      return Json(listUser, JsonRequestBehavior.AllowGet);
}

在页面:

<label class="col-form-label mr-2" style="font-size: 12px;">经手人</label>
<select class="form-control form-control-sm mr-3" style="width: 150px;" id="searchUserID" name="UserID"></select>

jQuery:

//绑定经手人下拉框
createSelect("searchUserID", "/HuiGuanHuo/SellArea/searchUser"); 

"searchUserID"是Id, "/HuiGuanHuo/SellArea/searchUser"是绑定数据的路径;

在MFC(Microsoft Foundation Classes)实现一个下拉列框通常使用`CDropDownList`控件或者是更为常见的`CStringArray`结合`CComboBox`控件。下面是简单的步骤: 1. **包含头文件**: 首先,在你的类声明包含所需的MFC头文件: ```cpp #include "afxwin.h" // MFC的基础库 #include "afxcmn.h" // 包含CComboBox和CDropDownList ``` 2. **添加成员变量**: 创建一个`CDropDownList`对象或者`CComboBox`,作为类的成员变量,用于存储下拉选项: ```cpp CComboBox m_ComboBox; CDropDownList myList; ``` 3. **构造函数**: 初始化下拉列,例如从数组加载数据: ```cpp CMyClass::CMyClass() { myList.Create(m_hWnd, IDC_COMBOBOX_NAME); // 设置ID,如IDC_COMBOBOX1 CStringArray options; // 存储下拉选项的数组 options.Add("Option 1"); options.Add("Option 2"); options.Add("Option 3"); // 添加你的选项到数组 for (int i = 0; i < options.GetSize(); ++i) { myList.AddString(options[i]); } } ``` 4. **显示/更新下拉列**: 可以在窗口的某个事件处理函数,比如OnPaint或OnInitDialog,设置组合框的内容: ```cpp void CMyClass::OnPaint() { CPaintDC dc(this); // 画刷设备上下文 m_ComboBox.DrawItem(dc, 0, true); // 绘制下拉框 } void CMyClass::OnInitDialog() { // 其他初始化... m_ComboBox.ShowWindow(SW_SHOW); // 显示下拉框 } ``` 5. **响应用户选择**: 当用户选择下拉列项时,可以通过`OnNotify`回调函数处理事件,获取所选索引: ```cpp afx_msg void CMyClass::NM_DBLCLK(NMHDR* pNMHDR, LRESULT* pResult) { int index = m_ComboBox.GetCurSel(); // 根据index处理用户的选择 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值