动态文本框和检索值 [英] Dynamic Textbox and Retrive values

查看:77
本文介绍了动态文本框和检索值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,

下面是我用来创建动态文本框的代码.现在我的问题是我如何存储动态创建的texbox的值.



设计师代码

Hello,

Below is the code I am using to create dynamic textbox. Now my problem is that how i store the values of dynamically created texboxes.



Designer code

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Panel ID="pnlTextBox" runat="server">
        
        <asp:LinkButton ID="btnAddtxt" runat="server" OnClick="btnAdd_Click">Add TextBox

        <br />
        <asp:Button ID="btnSave" runat="server" Text="Save" onclick="btnSave_Click" />
    </div>
    /form>
</body>
</html>



C#代码



C# code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
   // Panel pnlTextBox;
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Page_PreInit(object sender, EventArgs e)
    {
        RecreateControls("txtDynamic", "TextBox");
    }
    protected void btnAdd_Click(object sender, EventArgs e)
    {
        int cnt = FindOccurence("txtDynamic");
        CreateTextBox("txtDynamic-" + Convert.ToString(cnt + 1));
    }
    private int FindOccurence(string substr)
    {
        string reqstr = Request.Form.ToString();
        return ((reqstr.Length - reqstr.Replace(substr, "").Length) / substr.Length);
    }
    private void CreateTextBox(string ID)
    {
        TextBox txt = new TextBox();
        txt.ID = ID;
       
        pnlTextBox.Controls.Add(txt);

        Literal lt = new Literal();
        lt.Text = "<br />";
        pnlTextBox.Controls.Add(lt);
    }
   
    private void RecreateControls(string ctrlPrefix, string ctrlType)
    {
        string[] ctrls = Request.Form.ToString().Split('&');
        int cnt = FindOccurence(ctrlPrefix);
        if (cnt > 0)
        {
            for (int k = 1; k <= cnt; k++)
            {
                for (int i = 0; i < ctrls.Length; i++)
                {
                    if (ctrls[i].Contains(ctrlPrefix + "-" + k.ToString())
                        && !ctrls[i].Contains("EVENTTARGET"))
                    {
                        string ctrlID = ctrls[i].Split('=')[0];

                        if (ctrlType == "TextBox")
                        {
                            CreateTextBox(ctrlID);
                        }
                        break;
                    }
                }
            }
        }
    }

    protected void btnSave_Click(object sender, EventArgs e)
    {
       
    }
}

推荐答案

foreach(Control c in pnlTextBox.Controls)
{
   TextBox t = c as TextBox;
   if(t!=null)
   {
      // do something with your text box here
   }
}


这篇关于动态文本框和检索值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆