.net 在基类中使用隐藏的输入变量跨回发持久化值
在我的基础课上:.net 在基类中使用隐藏的输入变量跨回发持久化值,.net,asp.net,asp.net-2.0,.net,Asp.net,Asp.net 2.0,在我的基础课上: public abstract class BaseUserControl : System.Web.UI.UserControl { protected System.Web.UI.HtmlControls.HtmlInputHidden MyID; //This is called when the page loads private void OnLoad() { MyID.Value = "testId"; } protected
public abstract class BaseUserControl : System.Web.UI.UserControl
{
protected System.Web.UI.HtmlControls.HtmlInputHidden MyID;
//This is called when the page loads
private void OnLoad()
{
MyID.Value = "testId";
}
protected void OnButtonClick(object sender, EventArgs e)
{
string s = this.MyID.Value;
}
}
在从BaseUsercontrol继承的我的用户控件中,ascx具有:
<asp:Button id="btnTest" runat="server" OnClick="OnButtonClick" />
为什么我不能这样使用隐藏的输入变量呢???如果您的.ascx中有一个id=MyID的HiddenInputField,而这正是您试图使用的,那么您就不会这样做 您将需要执行FindControl 或 您可能想提供更多关于为什么以及您想要实现什么的详细信息。
因为可能还有其他可能的方法来实现您正在尝试的操作。HiddeniInputField位于基本用户控件中,而不在ascx标记中。它被声明为受保护并在同一个基本用户控件类中使用。您是在动态地将其添加到控件中,还是使用它的目的是什么?可能是我没有弄清楚。当你试图这样使用它时,到底发生了什么?你有错误吗?什么都没有发生吗?MyID在几次回发之后有一个空引用。您只是在回发期间尝试持久化值吗?为什么不使用viewstate?通过隐藏的输入变量,我可以从JS访问值