已有控件:一Dropdownlist
       一动态Table
    一Button;
目的:Dropdownlist的变动,带动Table里面的值变动,点击Button将Table值存入数据库.数据:Dropdwonlist的两valefield分别为1,2;两Datatextfield分别为:temp1,temp2
   动态Table中含两控件,一为Lable:显示Dropdwonlist的Datatextfield值;二为Text:填写信息.
   点击Button将Lable内容及Text内容写入一数据库.
难点:Lable及Text在动态Table里,随Dropdwonlist而变动,并和页面返回值也有关联.

解决方案 »

  1.   

    如果只要满足你的要求,根本用不着动态的table的,前台放一个label一个textbox的,当dropdownlist选项发生变化的时候,改变label里面的文本就可以了,
    <asp:DropDownList id="ddl" runat="server" onchange="changeLabelText();">
    <asp:ListItem></asp:ListItem>
    </asp:DropDownList>
    <script type="text/javascript" >
    function changeLabelText()
    {
    document.getElementById("labelid").innerText = document.getElementById("ddl").text;
    }
    </script>
      

  2.   

    用动态table的原因是实际上Dropdownlist对应的Lable及Text个数不确定.原程序显示界面代码如下:
    // 连接数据库
    OleDbConnection con=SyxFunction.CreatConnectionSafe();
    con.Open();
    OleDbCommand cmd=new OleDbCommand();
    cmd.Connection=con;
    OleDbDataReader dr;
    string strCmdText="";//读取机房设备列表
    strCmdText="select * from SafeShebei where JfID='"+this.DdlName.SelectedValue.Trim()+"'";
    cmd.Connection=con;
    cmd.CommandText=strCmdText;
    dr=cmd.ExecuteReader();//int N=20;
    //int i=1;
    int[] ArrayTemp=new int[N];
    TableRow myRow;
    TableCell myCell;
    this.TableSb.Width=Unit.Parse("600px");
      try
      {
      while (dr.Read())
        {
    //初始化表格
    myRow=new TableRow();
    myCell=new TableCell();
    myRow.BorderWidth=0;
    myRow.Width=Unit.Parse("100%");
    myRow.Height=Unit.Parse("25px");
    myCell.BorderWidth=0;
    myCell.Font.Size=FontUnit.Parse("14px");
    myCell.Width=Unit.Parse("140px");
    myCell.ForeColor=System.Drawing.Color.Black; //初始表格行数据
    //内容列
    OleDbConnection cn=SyxFunction.CreatConnectionSafe();
    cn.Open();
    OleDbCommand cmd1=new OleDbCommand("select LeiName from SafeLei where LeiID='"+dr["LeiID"]+"'",cn);
    string LeiNameX=Convert.ToString(cmd1.ExecuteScalar());
    System.Web.UI.WebControls.Label lbNeiRong=new System.Web.UI.WebControls.Label();
    lbNeiRong.Text=LeiNameX;
    myCell.Controls.Add(lbNeiRong);
    myRow.Controls.Add(myCell);
    cn.Dispose();
    cn.Close();

    //结果列
    myCell=new TableCell();
    myCell.BorderWidth=0; 
    System.Web.UI.WebControls.CheckBoxList cbJieGou=new System.Web.UI.WebControls.CheckBoxList();
    cbJieGou.Items.Add(new ListItem("正常","1"));
    cbJieGou.Items.Add(new ListItem("异常","2"));
    cbJieGou.Items[cbJieGou.Items.Count-2].Selected=true; myCell.Controls.Add(cbJieGou);
    myRow.Controls.Add(myCell); //备注列
    myCell=new TableCell();
    System.Web.UI.WebControls.TextBox tbBeiZhu=new System.Web.UI.WebControls.TextBox();
    myCell.Controls.Add(tbBeiZhu);
    myRow.Controls.Add(myCell); //机房设备ID存入数组
    //this.TableSb.Rows.Add(myRow);
    //ArrayTemp[i-1]=Convert.ToInt16(dr["SbID"]); //i++;
    }  catch
      {}
    }