C# 如何在ASP.net自定义控件中处理回发
可能是我遗漏了一些重要的东西,以便按照要求正确实施CustomControl,或者我缺乏知识。实际上,我已经创建了用于搜索的CustomControl(.dll),它有3个下拉框(从数据库填充)、1个文本框和搜索按钮,在选择合适的筛选条件后,用户单击搜索按钮,并显示simple gridview。我的问题是,我不想在每次回发(从页面触发)时填充CustomControl中的下拉框。当您所在的位置无法发现C# 如何在ASP.net自定义控件中处理回发,c#,asp.net,C#,Asp.net,可能是我遗漏了一些重要的东西,以便按照要求正确实施CustomControl,或者我缺乏知识。实际上,我已经创建了用于搜索的CustomControl(.dll),它有3个下拉框(从数据库填充)、1个文本框和搜索按钮,在选择合适的筛选条件后,用户单击搜索按钮,并显示simple gridview。我的问题是,我不想在每次回发(从页面触发)时填充CustomControl中的下拉框。当您所在的位置无法发现页面时,可以使用此全局参数: System.Web.HttpContext.Current
页面时,可以使用此全局参数:
System.Web.HttpContext.Current
现在,您可以从中获得页面
,如果该页面可用
Page page = HttpContext.Current.Handler as Page;
if (page != null && page.IsPostBack)
{
}
或者,您可以使用
System.Web.HttpContext.Current.Request.Form
并检查表单是否有值,然后可能是回发
请注意,在使用之前,请始终检查System.Web.HttpContext.Current
是否为null,因为如果从线程调用它,并且没有可用的页面,然后是null
是否检查页面加载上控件中的IsPostback
属性?我没有获得IsPostback属性,我实现了override void OnInit(EventArgs e)和override void CreateChildControls()Hi Aristos!谢谢您的回答,现在我收到了回传,但我的问题是,当第二次CreateChildControls()调用时,如果没有在下拉框中加载值,它就会丢失。@VishwanathMishra可能会禁用此控件在使用时的视图状态。(或者您没有在viewstate上保存此控件)