array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 动态添加服务器控件 - 爱码网

前台页面:

<asp:Table ID="tabPriceList" runat="server"></asp:Table>//显示控件的表格

//添加服务器控件

<asp:TextBox ID="txtTabNum" runat="server" Width="30px">1</asp:TextBox>
 &nbsp;<asp:LinkButton ID="lnkbtnAdd" runat="server" onclick="lnkbtnAdd_Click">设置</asp:LinkButton>
&nbsp;&nbsp;<span class="gray">输入1-9之间的数字</span>

后台页面:

 

    //重建控件
    public bool IsDynamicLoadControl
    {
        get
        {
            object addControl = ViewState["IsDynamicLoadControl"];
            return addControl == null ? false : true;
        }
        set
        {
            ViewState["IsDynamicLoadControl"] = value;
        }
    }

    protected override void LoadViewState(object savedState)
    {
        base.LoadViewState(savedState);
        if (IsDynamicLoadControl)
        {
            int rowNum = 1;
            if(ViewState["LoadControlNum"] != null)
            {
                rowNum = Convert.ToInt32(ViewState["LoadControlNum"]);
            }
            LoadAddControl(rowNum);
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            LoadAddControl(3); //初始化服务器控件
        }
    }

 

 

//动态添加控件
protected void lnkbtnAdd_Click(object sender, EventArgs e)
{
    int rowNum = 1;
    string trNum = this.txtTabNum.Text.Trim();
    string expression = @"^[1-9]{1}$";
    Regex reg = new Regex(expression);
    if (reg.IsMatch(trNum))
    {
        rowNum = Convert.ToInt32(trNum);
        LoadAddControl(rowNum);
    }
    else
    {
        this.txtTabNum.Text = (this.tabPriceList.Rows.Count - 1).ToString();
        PopupMsg("请输入1-9之间的数字");
    }
}

private void LoadAddControl(int rowNum)
{
    this.tabPriceList.Rows.Clear();

    //添加头部
    TableRow htr = new TableRow();
    TableCell htd1 = new TableCell();
    htd1.Text = "机票价格";
    htd1.Height = 30;
    TableCell htd2 = new TableCell();
    htd2.Text = "有效期开始";
    TableCell htd3 = new TableCell();
    htd3.Text = "有效期结束";
    TableCell htd4 = new TableCell();
    htd4.Text = "附送保险";
    TableCell htd5 = new TableCell();
    htd5.Text = "机票舱位";
    TableCell htd6 = new TableCell();
    htd6.Text = "燃油附加税";
    TableCell htd7 = new TableCell();
    htd7.Text = "机场建设费";
    TableCell htd8 = new TableCell();
    htd8.Text = "退改签规定";
    htd8.ColumnSpan=2;

    htr.Cells.Add(htd1);
    htr.Cells.Add(htd2);
    htr.Cells.Add(htd3);
    htr.Cells.Add(htd4);
    htr.Cells.Add(htd5);
    htr.Cells.Add(htd6);
    htr.Cells.Add(htd7);
    htr.Cells.Add(htd8);

    this.tabPriceList.Rows.Add(htr);

    //添加主体
    for (int i = 1; i <= rowNum; i++)
    {
        TableRow tr = new TableRow();
        TableCell td1 = new TableCell();
        TableCell td2 = new TableCell();
        TableCell td3 = new TableCell();
        TableCell td4 = new TableCell();
        TableCell td5 = new TableCell();
        TableCell td6 = new TableCell();
        TableCell td7 = new TableCell();
        TableCell td8 = new TableCell();
        TableCell td9 = new TableCell();

        //第一列:价格
        TextBox txtPrice = new TextBox();
        txtPrice.ID = "txtPrice" + i;
        txtPrice.Width = 70;
        td1.Controls.Add(txtPrice);
        //第二列:有效期开始时间
        TextBox txtDateStart = new TextBox();
        txtDateStart.ID = "txtDateStart" + i;
        txtDateStart.Width = 100;
        txtDateStart.ToolTip = "单击选择日期";
        txtDateStart.Attributes["onFocus"] = "WdatePicker({skin:'ext',minDate:'%y-%M-{%d}',maxDate:'#F{$dp.$D(http://www.cnblogs.com/zxjyuan/admin/file://'ctl00_AC_Content_txtDateEnd/" + i + "http://www.cnblogs.com/zxjyuan/admin/file://')||//'2020-10-01//'}'})";
        if (i == 1)
        {
            txtDateStart.Text = DateTime.Today.ToString("yyyy-MM-dd");
        }
        td2.Controls.Add(txtDateStart);
        //第三列:有效期结束时间
        TextBox txtDateEnd = new TextBox();
        txtDateEnd.ID = "txtDateEnd" + i;
        txtDateEnd.Width = 100;
        txtDateEnd.ToolTip = "单击选择日期";
        txtDateEnd.Attributes["onFocus"] = "WdatePicker({skin:'ext',minDate:'#F{$dp.$D(/ /'ctl00_AC_Content_txtDateStart/" + i + "'%y-%M-{%d} / /'}',maxDate:'2020-10-01'" | |//'%y-%M-{%d}//'}',maxDate:'2020-10-01'})";
        td3.Controls.Add(txtDateEnd);
        //第四列:赠送保险
        TextBox txtSafeAmt = new TextBox();
        txtSafeAmt.ID = "txtSafeAmt" + i;
        txtSafeAmt.Text = "0";
        txtSafeAmt.Width = 70;
        td4.Controls.Add(txtSafeAmt);
        //第五列:机票舱位
        DropDownList ddlFlySpace = new DropDownList();
        ddlFlySpace.ID = "ddlFlySpace" + i;
        ddlFlySpace.DataSource = BLLDict.GetDictList(1);
        ddlFlySpace.DataTextField = "SysName";
        ddlFlySpace.DataValueField = "DictID";
        ddlFlySpace.DataBind();
        td5.Controls.Add(ddlFlySpace);
        //第六列:燃油税
        TextBox txtOilTax = new TextBox();
        txtOilTax.ID = "txtOilTax" + i;
        txtOilTax.Text = "0";
        txtOilTax.Width = 90;
        td6.Controls.Add(txtOilTax);
        //第七列:机场建设费
        TextBox txtBuildTax = new TextBox();
        txtBuildTax.ID = "txtBuildTax" + i;
        txtBuildTax.Text = "50";
        txtBuildTax.Width = 90;
        td7.Controls.Add(txtBuildTax);
        //第八列:退改签规定
        td8.Text = "&nbsp;<span id=\"addFareRule" + i + "\" class=\"addFareRule\">填写规定</span>";

        TextBox txtFareRule = new TextBox();
        txtFareRule.ID = "txtFareRule" + i;
        txtFareRule.Text = "0";
        txtFareRule.TextMode = TextBoxMode.MultiLine;
        txtFareRule.Width = 90;
        txtFareRule.Style.Add("display", "none");
        td9.Controls.Add(txtFareRule);

        tr.Cells.Add(td1);
        tr.Cells.Add(td2);
        tr.Cells.Add(td3);
        tr.Cells.Add(td4);
        tr.Cells.Add(td5);
        tr.Cells.Add(td6);
        tr.Cells.Add(td7);
        tr.Cells.Add(td8);
        tr.Cells.Add(td9);

        this.tabPriceList.Rows.Add(tr);
    }

    ViewState["LoadControlNum"] = rowNum;
    IsDynamicLoadControl = true;
}

 

 

获得动态控件的值:

//验证并构建机票datatable
string txtDateStart = string.Empty;
string txtDateEnd = string.Empty;
string txtPrice = string.Empty;

DataTable dateTable = new DataTable("dateTable");
dateTable.Columns.Add("ID", typeof(int));
dateTable.Columns.Add("DateStart", typeof(string));
dateTable.Columns.Add("DateEnd", typeof(string));
dateTable.Columns.Add("Price", typeof(string));

int tabNum = this.tabPriceList.Rows.Count;
Regex regular = new Regex(@"^\d+(\.\d{1,2})?$");
for (int t = 1; t < tabNum; t++)
{
    //获得动态控件中的值
    txtDateStart = ((TextBox)(this.tabPriceList.Rows[t].FindControl("txtDateStart" + t))).Text.Trim();
    txtDateEnd = ((TextBox)(this.tabPriceList.Rows[t].FindControl("txtDateEnd" + t))).Text.Trim();
    txtPrice = ((TextBox)(this.tabPriceList.Rows[t].FindControl("txtPrice" + t))).Text.Trim();
    if (string.IsNullOrEmpty(txtDateStart) || string.IsNullOrEmpty(txtDateEnd) || !regular.IsMatch(txtPrice))
    {
        PopupMsg("请选择有效期,机票价格为数字");
        return;
    }
    else
    {
        dateTable.Rows.Add(t, txtDateStart, txtDateEnd, txtPrice);
    }
}

 

相关文章:

  • 2021-12-02
  • 2021-10-27
  • 2021-12-10
  • 2018-12-29
  • 2021-08-04
  • 2021-08-07
  • 2018-07-10
  • 2018-01-22
猜你喜欢
  • 2021-12-09
  • 2019-03-20
  • 2020-04-09
  • 2019-09-19
  • 2021-08-07
  • 2021-08-05
  • 2019-08-14
  • 2021-10-05
相关资源
相似解决方案