【问题标题】:Finding text from text box of user control从用户控件的文本框中查找文本
【发布时间】:2013-07-04 17:15:59
【问题描述】:

我有以下名为 ProductMenu.ascx 的用户控件:

CS:

public partial class ProductMenu1 :System.Web.UI.UserControl
{
  protected void Page_Load(object sender, EventArgs e)
  {

  }
  public void SetTxt(String Cusine,String PName,String Description,String serving)
  {

      lblProductName.Text = PName;
      lblDescription.Text = Description;
      lblServing.Text = serving;
      lblPrice.Text = ""+230;
  }


}

我将此用户控件添加到页面页面ProductMenu.aspx如下

CS:

public void PupulateMenu(DataTable dt)
{
  for (int i = 0; i < dt.Rows.Count; i++)
  {
    ProductMenu1 PM = (ProductMenu1)Page.LoadControl("ProductMenu.ascx");
    PM.SetTxt(dt.Rows[i][1].ToString(),dt.Rows[i][3].ToString(),dt.Rows[i]
    [4].ToString(),dt.Rows[i][6].ToString());
    Button addtocart = (Button)PM.FindControl("btnAddToCart");
    addtocart.CommandArgument = dt.Rows[i][3].ToString() + ";" + dt.Rows[i]
    [8].ToString() + ";" + dt.Rows[i][5].ToString();
    addtocart.Click += new EventHandler(addtocatr_Click);
    pnlProductMenu.Controls.Add(PM);
  }
}

以下是ProductMenu.aspx页面上用于将用户控件文本框数量添加到购物车的功能。

private  void addtocatr_Click(object sender, EventArgs e)
{
  string[]  arg = ((System.Web.UI.WebControls.Button)
  (sender)).CommandArgument.ToString().Split(';');
  ProductMenu1 pm=new ProductMenu1 ();
  string txtQty = ((TextBox)pm.FindControl("txtQty")).Text;
}

但我无法访问方法 addtocatr_Click 中的文本框 (txtqty) 文本。我不知道到底是什么问题。请帮帮我。 提前致谢。

【问题讨论】:

  • 即将发生什么错误或异常?

标签: c# html asp.net c#-4.0


【解决方案1】:

写一个属性来访问TextBox值会更容易

喜欢

public string QtyText
{
    get { return txtQty.Text; }
}

并使用

访问
string txtQty = pm.QtyText;

【讨论】:

    【解决方案2】:

    我无法访问文本框 (txtqty) 文本

    为您的控件提供一个名为 Quantity 的公共只读属性。使用get例程return txtqty.text;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多