如何从Web页面将动态参数值设置为自定义控件

时间:2012-12-05 07:37:45

标签: c# asp.net sharepoint

我在自定义控件中有一个图像按钮,如下所示。

     public string SearchTableName = string.Empty;
       public string SearchColumnName = string.Empty;
       public string SiteURL = string.Empty;
        ImageButton _imgbtn;
         protected override void OnInit(EventArgs e)
         {
           _imgbtn = new ImageButton();
           _imgbtn.ImageUrl = ImageURL;
           _imgbtn.OnClientClick = "ShowSearchBox('" + SiteURL +"/_layouts/CustomSearch/SearchPage/Searchpage.aspx?table_name=" + SearchTableName + " &column_name=" + SearchColumnName + "')";
         }

在单击图像按钮时,我想迁移到另一个弹出窗口。为此我写了一个javascript函数。我在网页中设置SearchTableNameSearchColumnName,我们正在使用此自定义控件,如下所示。在使用之前,我在带有注册标记的网页中注册了此控件。

<ncc:SearchControl runat="server" ID="txtSearchControl" />在此网页的代码隐藏文件中,我使用以下代码来设置值。

protected void Page_Load(object sender, EventArgs e)
{
  txtSearchControl.ImageURL = "_layouts/Images/settingsicon.gif";
  txtSearchControl.SearchTableName = "Employees";
  txtSearchControl.SearchColumnName = "LastName";
  txtSearchControl.SiteURL = "http://Sp2010:8787";
 }

现在遇到问题,当我点击图片按钮时,SearchTableNameSearchColumnName值不会出现。我想我正在调用OnClientClick函数,这就是没有设置值的原因。但是如何根据网页中的值设置设置自定义控件的值。如果我使用Click功能,它是否符合我的目的?如果是这样,如何从这个点击事件中调用该javascript函数。

1 个答案:

答案 0 :(得分:1)

终于得到了解决方案。我正在初始化自定义控件中页面init方法中的值。这就是我没有捕获我在可视webpart页面中设置的值的原因。现在我更改了CreateChildControl方法中的值的初始化。现在它完美无缺。谢谢。