将数据从ASP.NET页面传递到动态加载的ASCX用户控件

Van*_*nel 24 c# ascx communication asp.net-ajax

我正在使用C#和Ajax开发一个ASP.NET应用程序.

我有一个页面,用于保存动态加载的用户控件.我需要将一些数据(整数值和一些字符串)传递给动态加载的用户控件.

现在我使用Session来传递这些值,但我想我可以用另一种方式; 类似于VIEWSTATE或隐藏的输入.

你推荐我什么?

更新:

我动态加载控件这一事实非常重要,因为每次回发都会加载控件,而且我无法在控件上存储任何值.

Ode*_*ded 45

使用要传递给它的数据的数据类型在用户控件上创建属性,并在创建控件时在页面中填充该属性.

public class myControl : Control
{
  ...
  public int myIntValue {get; set;}
  ...
}
Run Code Online (Sandbox Code Playgroud)

在后面的代码中:

myControl ctrl = new myControl();
ctrl.myIntValue = 5;
Run Code Online (Sandbox Code Playgroud)

您也可以直接在标记中执行此操作:

<uc1:myControl ID="uc1" runat="server" myIntValue="5" />
Run Code Online (Sandbox Code Playgroud)

  • 您应该使用ViewState来保持控件状态. (2认同)

Jac*_*tti 11

在用户控件中设置公共属性.

public string TestValue { get;set;};
Run Code Online (Sandbox Code Playgroud)

然后当您将用户控件放在aspx页面中时:

<uc1:UserControl ID="uc1" runat="server" TestValue="Testing" />
Run Code Online (Sandbox Code Playgroud)

您还可以更改代码中的值:

uc1.testValue = "some value";
Run Code Online (Sandbox Code Playgroud)