如何获取DataNavigateUrlFields的值?

时间:2012-05-03 07:37:28

标签: c# asp.net .net gridview hyperlink

我有一个DataTable,它通过DataNavigateUrlField传递一个值。

在代码中我输入什么来获取该值,例如:

MessageNum = DataNavigateUrlField[MessageNumber];

这里我有DataNavigateUrlFields="MessageNumber",我的C#代码可以做些什么来获取MessageNumber的值?我需要帮助。

<asp:HyperLinkField
    HeaderText="Subject"
    DataNavigateUrlFields="MessageNumber" 
    DataNavigateUrlFormatString="~/ViewMailContent.aspx?MessageNumber={0}"
    DataTextField="Subject" />

将DataTable设置为GridView.DataSource,然后发送到页面,用户选择超链接,然后页面导航,我需要选择的消息编号。

我注意到The Value显示在我的屏幕顶部的Url及其正确的值,但是我如何获得该值,是否可以在Page导航之前获取该值?否则该页面必须加载两次我认为。

我一周前开始上网,所以不要给我极端的网络术语。

1 个答案:

答案 0 :(得分:4)

你有(至少)两个选择:

  1. 如果您需要目标网页中的值(通过点击网格中的网址导航到的页面),您只需编写

    示例(代码隐藏):

    Request.QueryString("MessageNumber")
    
  2. 如果您需要包含网格的页面中的值,您将重写网址以指向javascript函数,该函数可能会重定向到目标网页。

    <asp:HyperLinkField
        HeaderText="Subject"
        DataNavigateUrlFields="MessageNumber" 
        DataNavigateUrlFormatString="javascript:myFunction({0})"
        DataTextField="Subject" />
    

    该函数(应该在源页面的javascript块中):

    function myFunction(id)
    { 
        alert("Now you are leaving this page");
        document.location = "ViewMailContent.aspx?MessageNumber=" + id;
    }