将客户端控件ID和值附加到Request对象......可能吗?

时间:2011-12-02 22:41:17

标签: c# javascript asp.net

我有一个网格视图,其中的列是数据绑定项模板。 我需要将控件(Hyperlink)的客户端ID及其值附加到请求对象,同时将其发布回服务器(因为Viewstate已关闭)。 使用客户端ID,我可以编写代码来检索超链接'text'字段的值。

这有可能吗?或者,你们可以建议我采用另一种方法吗?

2 个答案:

答案 0 :(得分:1)

是的,这是可能的。

让一些JavaScript将控件的ID保存到表单中的隐藏输入字段中。然后,您可以从服务器上的Request对象中读取已发布的表单字段。

答案 1 :(得分:0)

使用GridView的ItemDataBound事件,然后对超链接执行findcontrol并将navigationurl设置为格式正确的链接

这不好,但确实有效。

private void gridClientAccounts_ItemDataBound(object sender, DataGridItemEventArgs e)
  {
     if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
     {
        DataRowView myRow = (DataRowView)e.Item.DataItem;
        var unlockButton = (HyperLink)e.Item.FindControl("nameId");


        string url = string.Format("~/folder/page.aspx?id={0}&param2={1}", myRow["clientId"], unlockButton.ClientID);

        unlockButton.NavigateUrl = url ;
     }
  }

带超链接:
   < ASP:TemplateColumn中>

                  < HeaderTemplate中>                      < asp:Label ID =“lbheader”runat =“server”> headertext< / asp:Label>                   < / HeaderTemplate中>
                  <&的ItemTemplate GT;
                     < asp:HyperLink ID =“nameId”runat =“server”CssClass =“link”Text ='<%#DataBinder.Eval(Container,“DataItem.NAME”)%>'>                      < / ASP:超链接>
                  < / ItemTemplate中>
               < / ASP:TemplateColumn中>