VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 732|回复: 6

搞了二天的问题还没解决,现在详细说明再次请帮助

[复制链接]

6

主题

20

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-3-14 19:30:02 | 显示全部楼层 |阅读模式

表一(部门):

sortid   sort
1         研发部
2         财务部

表二(姓名):
typeid  typename sortid
1        张三      1
2        李四     2
3        王五      1

表三(完整数据):
id  typename  typeid  sort     wenti          ipaddress
1     张三     1     研发部   网断了哦        192.168.0.8
2     李四     2     财务部    打印机不行了   192.168.0.10


前面在网上找了一段代码实现了联动


现在想通过联动,把部门,姓名,问题,IP,一起传到数据表三.

cm.Parameters.Add(new SqlParameter("@usort",SqlDbType.VarChar,50));
cm.Parameters.Add(new SqlParameter("@utypename",SqlDbType.VarChar,50));
cm.Parameters.Add(new SqlParameter("@uwenti",SqlDbType.VarChar,50));
cm.Parameters.Add(new SqlParameter("@ipaddress",SqlDbType.VarChar,50));
cm.Parameters["@usort"].Value=mydown1.SelectedItem.Value; //这个地方是这样写吗
cm.Parameters["@utypename"].Value=mydown1.SelectedItem.Value;  //这个地方是这样写吗
cm.Parameters["@uwenti"].Value=t1.Text;
cm.Parameters["@ipaddress"].Value=Request.UserHostAddress;


回复

使用道具 举报

6

主题

20

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
 楼主| 发表于 2020-6-12 21:45:01 | 显示全部楼层
联动代码是这样的

html

<SCRIPT language="JavaScript">
                        <!--
                        //以XML求取数据
                        //参数:
                        //obj,当前动作的下拉框
                        //fullName:要填充的下拉框
                        function XmlPost(obj,fullName)
                        {
                                //求取当前下拉框的值
                          var svalue = obj.value;
                          //定义要填充的对象
                          var fullObj = document.all(fullName);
                         
                          //定义取值地址
                          var webFileUrl = "?sortid=" + svalue;
                         
                          //定义返回值
                          var result = "";
                         
                          //开始取值过程
                          var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
                          xmlHttp.open("POST", webFileUrl, false);
                          xmlHttp.send("");
                          result = xmlHttp.responseText;

                          //如果有取到值,则根据格式进行拆分
                          //注意如果选择了第一行"请选择"空行时,是取不到值的,因此多加了一个条件
                          if(result != "" && svalue != "")
                          {
                                  //先清空原有的值
                            fullObj.length=0;
                           
                            //拆分值成数组
                            var piArray = result.split(",");
                           
                            //循环数组
                            for(var i=0;i<piArray.length;i++)
                            {
                                    //再拆分成ID及名称
                              var ary1 = piArray[i].toString().split("|");
                              //逐一添加项
                              fullObj.options.add(new Option(ary1[1].toString(),ary1[0].toString()));
                            }
                          }
                          else
                          {
                            //如果没有取到值,则清空要填充的下拉框的值
                            fullObj.length = 0;
                            fullObj.options.add(new Option("请选择",""));
                          }
                        }
                        //-->
                </SCRIPT>


回复

使用道具 举报

6

主题

20

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
 楼主| 发表于 2020-6-12 23:00:01 | 显示全部楼层
服务器端是这样的

                private DataTable Get_Dt(string sql)
                {

                        String strConnection=ConfigurationSettings.AppSettings["ConnectionString"];
                        SqlConnection myConnection=new SqlConnection(strConnection);

                        myConnection.Open();



            SqlDataAdapter myAdp=new SqlDataAdapter(sql,myConnection);

DataTable myDt = new DataTable();

                        try
                        {
                                //填充数据
                                myAdp.Fill(myDt);
                                //返回数据集
                                return(myDt);
                        }
                        catch(OleDbException ex)
                        {
                                //显示错误信息
                                throw ex;
                        }
                        finally
                        {
                                //关闭数据库连接
                                myConnection.Close();
                        }
                }

                private void Page_Load(object sender, System.EventArgs e)
                {
                        //接收参数
                        string sortid = this.Request.QueryString["sortid"];
                        //判断参数是否为空(注意:空有两种形式,一种为null,一种为空)
                        if(sortid + "a" != "a")
                        {
                                //如果有传递上述参数,则表示联动操作开始
                                this.xmlBind(sortid);
                        }

                        //在页面初次加载的时候,绑定第一/二个下拉框,第二个下拉框为所有值
                        //但实际上,第二个下拉框应显示空值,因为所有值可能也不少,最好只显示一个"请选择"字样
                        if(!this.IsPostBack)
                        {
                                this.DownBind1();
                                this.DownBind2();
                        }
                }

                private void xmlBind(string sortid)
                {
                        string mystr = "";
                        string sql = "select typename,typeid from class_2 where sortid = " + sortid ;
                        DataTable mytab = this.Get_Dt(sql);

                        //将取到的值形成: ID|名称,ID|名称...这样的形式
                        if(mytab.Rows.Count != 0)
                        {
                                for(int i=0;i<mytab.Rows.Count;i++)
                                {
                                        mystr += "," + mytab.Rows[i]["typeid"].ToString() + "|" + mytab.Rows[i]["typename"].ToString();
                                }
                                mystr = mystr.Substring(1);
                        }

                        //输出页面
                        this.Response.Write(mystr);
                        this.Response.End();
                }

                /// <summary>
                /// 绑定第一个下拉框
                /// </summary>
                private void DownBind1()
                {
                        //显示所有的主分类
                        string sql = "select sortid,sort from class_1 order by sortid asc ";
                        DataTable mytab = this.Get_Dt(sql);

                        //绑定第一个下拉框
                        this.mydown1.DataSource = mytab;
                        this.mydown1.DataValueField = "sortid";
                        this.mydown1.DataTextField = "sort";
                        this.mydown1.DataBind();

                        //添加一个"请选择"行
                        this.mydown1.Items.Insert(0,new ListItem("请选择分类",""));

                        //为此下拉框添加一个默认选择项(此处默认为sortid = 1
                        //做选项时,如果你添加的选定项而此控件中却没有此项,即会出错
                        //如:this.mydown1.SelectedValue = "1";
                        //所以此处以如下方式进行选定                       
                        ListItem myItem = this.mydown1.Items.FindByValue("1");
                        if(myItem != null)
                        {
                                myItem.Selected = true;
                        }

                        this.mydown1.Attributes.Add("onchange","XmlPost(this,'" + this.mydown2.ClientID + "');");
                }
       

                private void DownBind2()
                {
                        //默认显示分类号为1的所有子类
                  string sql = "select sortid,typename,typeid from class_2 where sortid =1" ;
                  DataTable mytab = this.Get_Dt(sql);

                        //绑牢控件
                  this.mydown2.DataSource = mytab;
                  this.mydown2.DataSource = mytab;
                  this.mydown2.DataValueField = "typeid";
                  this.mydown2.DataTextField = "typename";
                  this.mydown2.DataBind();

                        //添加一个空的首行
                        this.mydown2.Items.Insert(0,new ListItem("请选择名称",""));
                }
回复

使用道具 举报

0

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-6-19 14:00:02 | 显示全部楼层
晕!!这么简单的问题还要放这么多表,真晕~
回复

使用道具 举报

6

主题

20

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
 楼主| 发表于 2020-6-25 01:15:01 | 显示全部楼层
简单的问题就说一下啊,

主要是联动
回复

使用道具 举报

0

主题

9

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-6-26 07:30:01 | 显示全部楼层
重新定义个表呀再绑定不就OK了,上网查下
回复

使用道具 举报

6

主题

20

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
 楼主| 发表于 2020-6-26 17:15:01 | 显示全部楼层
已经重新定交了表三啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表