在我的ASP.NET Web窗体中,我想从DataNavigateUrlFields
控件中获取HyperLinkField
。
为了获得控件,我在RowDataBound
事件中使用以下代码:
If e.Row.Cells(n).Controls(0).GetType().ToString() = "System.Web.UI.WebControls.HyperLink" Then
Dim linkDownload As HyperLink = DirectCast(e.Row.Cells(n).Controls(0), HyperLink)
问题是我已经“填充” HyperLink ,因此DataNavigateURLFormatString
(myPage.aspx?downloadId = {0}
)和DataNavigateUrlFields
(downloadGuid
)是已合并到HyperLink.NavigateUrl
属性中。
有没有办法获得DataNavigateUrlFields
财产?如果没有,是否有任何功能可以从HyperLink.NavigateUrl
中提取 downloadGuid 值(简而言之,将 NavigateUrl 视为 QueryString )?
VB是首选,但C#中的答案也很受欢迎
答案 0 :(得分:3)
如果你有了url,你可以使用Url类来操作它。它还允许提取参数和值。还有正则表达式选项。
但DataNavigateUrlFields(downloadGuid)中的downloadGuid来自哪里?你应该在RowDataBound事件参数中获取绑定对象,如果downloadGuid是属性,你可以从那里抓取。
无论如何,完整的事件代码肯定会有所帮助。
答案 1 :(得分:2)
为什么你不能像
那样 if(e.Row.RowType==DataControlRowType.DataRow)
Response.Write(((DataRowView)e.Row.DataItem)["downloadGuid"]);