0

我正在动态加载用户控件。我添加了一个事件处理程序,它在调试时触发并返回正确的结果。但是,我正在从获得的结果中填充网格。尽管我得到了结果并且 gridview 被填充(如调试所示)。但是不显示填充的网格视图,而是显示网格视图。我不知道错误在哪里。

  protected void Page_Load(object sender, EventArgs e)
        {
            lblMessage.Visible = false;
            UCAdvancedFilter.sendMessageToThePage += new AdvancedFilter.SendMessageToThePageHandler(OnsendMessageToThePage);
    }

背后的代码

  protected void OnsendMessageToThePage(string id)
    {
        GroupMasterClass gm = new GroupMasterClass();
        gm.igroup_id = Convert.ToInt32(id);

         ResultClass objres = gm.fn_GetAdvancedSearchById();
         if (objres.bStatus)
         {
             eslist<GroupMasterClass> OBJLIST = objres.objData as eslist<GroupMasterClass>;
             if (OBJLIST.Count > 0)
             {
              grid.DataSource=OBJLIST;
              grid.DataBind();
             }
          }
      }

用户控制

public delegate void SendMessageToThePageHandler(string messageToThePage);
public event SendMessageToThePageHandler sendMessageToThePage;

#region Events


    protected void btnCloseMsg_Click(object sender, EventArgs e)
    {
        Panel1_ModalPopupExtender.Hide();
    }

    protected void btnSearch_Click(object sender,EventArgs e)
    {
if (sendMessageToThePage != null)
        {
            sendMessageToThePage(hdnResult.Value);
        }
}

在进一步调试和检查中,我发现再次单击按钮时会显示结果。

谢谢

4

2 回答 2

0

这是更新面板的问题。我设置了 UpdateMode=Always,它开始工作了。

于 2012-08-08T05:38:51.893 回答
-2

//在父表单或主表单中添加此代码 protected override void OnInit(EventArgs e) {

        LinkButton button = (LinkButton)UserControl.FindControl("btnSearch");
        //wire up event handler
        button.Click += new EventHandler(btnSearch_Click);
        UserControl.sendMessageToThePage += delegate (string message) { ButtonClick = message; };       
        base.OnInit(e);
    }
于 2020-02-11T19:15:32.623 回答