当我从页面访问用户控件时,无法在用户控件中看到来自DB的控件值

时间:2014-09-19 08:32:35

标签: c# asp.net .net user-controls postback

我有一个用户控件,当点击按钮时,我从父页面加载此用户控件。

在用户控件中我有一个下拉列表和网格视图,这两个数据都是在页面加载方法中加载表单数据库......

但是在父页面中,当我点击按钮加载用户控件时,我只能看到一个没有加载值的下拉列表(通常它加载了值)并且无法看到网格视图还是......

这是我的代码..在父页面

 <%@ Page Language="C#" MasterPageFile="~/MasterPages/template.master" AutoEventWireup="true"            CodeFile="ViewCertificateMaster.aspx.cs" Inherits="Pages_ViewCertificateMaster" %>

  <%@ Register Src="../Controls/one.ascx" TagPrefix="uc1" TagName="one" %>

和代码隐藏文件

protected void btnShow_OnClick(object sender, EventArgs e)
{
    int selectedItem = ddlProductType.SelectedIndex;

    switch (selectedItem)
    {
        case 0:

            UserControl myUsrControl = (UserControl)Page.LoadControl("../Controls/one.ascx");
            divViewMyCerts.Controls.Add(myUsrControl);
            divViewMyCerts.Visible = true;

            break;
     ....................
         ..................
      ..................
       code 

在文件后面的one.ascx代码中......

protected void Page_Load(object sender, EventArgs e)
{
    string remoteUser = ((UserInfo)Session["USER_INFO"]).GetUserEmail();
    intAcctId = ((UserInfo)Session["USER_INFO"]).GetUserAcctId();
    objCert = new Certificate();

    if (!IsPostBack)
    {
         .............
         here I am binding the grid view and drop down list values from DB
         ...............
         ...............

请问任何人请帮忙解决这个问题,为什么我会得到空的下拉列表,而且也无法看到网格视图......

非常感谢提前

1 个答案:

答案 0 :(得分:0)

因为IsPostBack在one.ascx的Page_Load中为真。由于控件是在页面的btnShow_OnClick事件中添加的,因此IsPostBack为true。检查代码中one.ascx中IsPostBack的值。

请参阅用户控件的IsPostBack定义。这是

&#34;总结:              获取一个值,该值指示是否正在加载用户控件作为响应              到客户端回发,或者是第一次加载和访问它              时间。

返回:              如果正在加载用户控件以响应客户端回发,则为true;否则为false。              否则,假。&#34;