我在ASP.NET中创建了一个自定义服务器控件来呈现标准复选框和隐藏字段,如下所示:
public class CheckAllBox : WebControl
{
private string checkboxClientID;
protected override void OnInit(EventArgs e)
{
checkboxClientID = String.Format("{0}{1}chbCheckAll", base.ClientID, base.ClientIDSeparator);
base.OnInit(e);
}
protected override void Render(HtmlTextWriter writer)
{
//Render checkbox
writer.AddAttribute(HtmlTextWriterAttribute.Id, checkboxClientID);
writer.AddAttribute(HtmlTextWriterAttribute.Name, checkboxClientID);
writer.AddAttribute(HtmlTextWriterAttribute.Type, "checkbox");
writer.AddAttribute(HtmlTextWriterAttribute.Value, Values);
writer.RenderBeginTag(HtmlTextWriterTag.Input);
writer.RenderEndTag();
//Render hidden field
writer.AddAttribute(HtmlTextWriterAttribute.Id, String.Format("{0}{1}hdnExcludeValues", base.ClientID, base.ClientIDSeparator));
writer.AddAttribute(HtmlTextWriterAttribute.Name, String.Format("{0}{1}hdnExcludeValues", base.ClientID, base.ClientIDSeparator));
writer.AddAttribute(HtmlTextWriterAttribute.Type, "hidden");
writer.AddAttribute(HtmlTextWriterAttribute.Value, ExcludeValues.ToString());
writer.RenderBeginTag(HtmlTextWriterTag.Input);
writer.RenderEndTag();
}
}
现在我想检索隐藏字段的值以及回发时的复选框 - 是否可以使用我已呈现的标准html?
我已经编写了与此标记一起使用的jQuery,但它确实需要一个带有值的标准html复选框 - 而不是ASP.NET提供的复选框。
如果无法从标准html输入中检索值,我是否需要将其重写为复合控件,还是有其他技巧?
答案 0 :(得分:2)
Request对象的Form属性包含当前请求的所有表单元素的值。
string key = ...; // "name" attribute of the form element
string val = Request.Form[key];