【问题标题】:How to retain values from ascx control from aspx page, button click如何从aspx页面保留ascx控件的值,单击按钮
【发布时间】:2015-12-22 08:19:24
【问题描述】:

IDE:VS 2012 网页

我有一个 test.aspx 页面,用户控件是使用以下代码在此页面上动态添加的

 internal static List<ucTest> collTest  = null;
 private void PageLoad()  
 {
      //called in page on load, handled properly across postback.
      collTest   = new List<ucTest>();
 }


    private void AddTestControl()
    {

            ucTest obj= LoadControl("~/UserControl/ucTest.ascx") as ucTest;
            collTest.Add(obj); //control instance is added in list, to retrieve back values.
    }

现在在文件后面的 test.aspx 代码中的 buttonSave Click 上,我正在尝试取回 ucTest 文本框值。,我正在变空。你能告诉我如何保留这个价值吗?

protected void btnSave_Click(object sender, EventArgs e)
    {
        ucTest test = (ucTest )this.FindControl("ucTest.ascx"); //not working, test is null.  




        foreach (ucTest objTest in collTest)
        {


           string s  = objTest.txtSomthing.value; //here s is showing empty.., even the value is populated in form.; , txtSomthing is public in designer.
        }
    }    

有没有办法从ucTest中检索这些值呢,aspx页面可以包含多个ucTest控件。

【问题讨论】:

  • 你在哪里打电话AddTestControl()
  • 动态添加这个用户控件有什么原因吗?另外,为什么要将用户控件添加到列表中?你到底想达到什么目的?
  • 当下拉值发生变化时添加控件,例如 1, 2 ,3 ,4 等,一切都很完美,我需要知道如何取回这些值。

标签: c# jquery asp.net visual-studio-2012 user-controls


【解决方案1】:

假设您的用户控件中有一个名为 txtName 的文本框,那么我将通过在用户控件后面的代码中添加一个属性来公开它的值。 IE。

public string FirstName
{
   get
   {
      return txtName.Text;
    }
    set
    {
       txtName.Text = value;
    }
}

然后在您的 aspx 中执行以下操作:

protected void btnSave_Click(object sender, EventArgs e)
{
    ucTest test = (ucTest )collTest[yourdropdown.SelectedIndex];
    string strName = ucTest.FirstName;
}    

【讨论】:

  • 这应该可以,但这不起作用,我正在尝试并提出问题。
  • collTest中有控件吗?
【解决方案2】:

问题解决方法如下:

string value = Request.From["someDynamicID"];  

【讨论】:

    【解决方案3】:

    当您将控件添加到父页面时,This is Key,您必须从 Page_Init() 方法进行加载。这样,它将被添加到站点的视图状态中。例如,如果在 Page_Load() 中添加它,您将无法在 Save() 方法中获取用户控件的值。

    This link has an example with source in a ZIP file.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      相关资源
      最近更新 更多