2010-10-22 46 views
0

我创建了一个ASP.NET自定义服务器控件呈现一个标准的复选框和隐藏字段是这样的:我可以检索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输入中检索该值,我是否需要将其重写为复合控件,或者是否存在其他技巧?

回答

2

Request对象的Form属性包含当前请求的所有表单元素的值。

string key = ...; // "name" attribute of the form element 
string val = Request.Form[key]; 
+0

你是绝对正确的,但抛出我的是我的复选框值为空。但当然,它是空的原因是,如果未选中复选框,则不会发布该值。呃....现在我只需要另一个隐藏的领域.... – Colin 2010-10-22 16:39:51

相关问题