C# ASP.NET自定义控件和Page.Request.Form[]
我有一个从System.Web.UI.control继承的控件,它包含通用HTML控件,而不是asp.net服务器端控件。我使用Page.Request.Form[Control\u id]获取其中一个控件的值。如果我有一个包含一列自定义控件的gridview,并且我添加了一个新行[row6],然后从第[row3]行上方删除了一行,那么这基本上是可行的,新行[row6变为row5]中的控件假定其正上方的行的值[row5变为row4]C# ASP.NET自定义控件和Page.Request.Form[],c#,asp.net-2.0,custom-server-controls,C#,Asp.net 2.0,Custom Server Controls,我有一个从System.Web.UI.control继承的控件,它包含通用HTML控件,而不是asp.net服务器端控件。我使用Page.Request.Form[Control\u id]获取其中一个控件的值。如果我有一个包含一列自定义控件的gridview,并且我添加了一个新行[row6],然后从第[row3]行上方删除了一行,那么这基本上是可行的,新行[row6变为row5]中的控件假定其正上方的行的值[row5变为row4] 我认为这是因为我使用Page.Request.Form[]获取
我认为这是因为我使用Page.Request.Form[]获取每个控件的值,但我的控件不知道这些值属于以前占用同一行的控件。我该如何解决这个问题?我希望得到任何建议 您不需要处理
页面.Request.Form
集合。您需要的是一个适当的复合控件。下面是一个简单的例子:
public class InputTextWithLabelControl : CompositeControl {
HtmlGenericControl _label;
HtmlInputText _text;
public string Label {
get {
EnsureChildControls();
return _label.InnerText;
}
set {
EnsureChildControls();
_label.InnerText = value;
}
}
public string Text {
get {
EnsureChildControls();
return _text.Value;
}
set {
EnsureChildControls();
_text.Value = value;
}
}
protected override void CreateChildControls() {
Controls.Clear();
_label = new HtmlGenericControl("span");
_label.ID = "label";
_text = new HtmlInputText();
_text.ID = "text";
Controls.Add(_label);
Controls.Add(_text);
}
}
您不需要处理
页面.Request.Form
集合。您需要的是一个适当的复合控件。下面是一个简单的例子:
public class InputTextWithLabelControl : CompositeControl {
HtmlGenericControl _label;
HtmlInputText _text;
public string Label {
get {
EnsureChildControls();
return _label.InnerText;
}
set {
EnsureChildControls();
_label.InnerText = value;
}
}
public string Text {
get {
EnsureChildControls();
return _text.Value;
}
set {
EnsureChildControls();
_text.Value = value;
}
}
protected override void CreateChildControls() {
Controls.Clear();
_label = new HtmlGenericControl("span");
_label.ID = "label";
_text = new HtmlInputText();
_text.ID = "text";
Controls.Add(_label);
Controls.Add(_text);
}
}
我很难理解这一点;你能编辑这个并添加额外的代码来支持这个问题吗?谢谢。我很难理解这一点;你能编辑这个并添加额外的代码来支持这个问题吗?谢谢