1

DataNavigateUrlFields私の ASP.NET Web フォームでは、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)

問題は、ハイパーリンクが既に「塗りつぶされている」ため、DataNavigateURLFormatString( myPage.aspx?downloadId = {0}) とDataNavigateUrlFields( ) が既にプロパティdownloadGuidに結合されていることです。HyperLink.NavigateUrl

DataNavigateUrlFieldsプロパティを取得する方法はありますか?ない場合、 downloadGuid値を抽出する関数はありますかHyperLink.NavigateUrl(つまり、NavigateUrlQueryStringとして扱います)?

VB が推奨されますが、C# での回答も歓迎されます

4

2 に答える 2

3

URL を取得した場合は、Url クラスを使用して操作できます。パラメータと値を抽出することもできます。利用可能な正規表現オプションもあります。

しかし、DataNavigateUrlFields (downloadGuid) の downloadGuid はどこから来ているのでしょうか? バインドされたオブジェクトを RowDataBound イベント パラメーターで取得する必要があります。downloadGuid がプロパティの場合は、そこから取得できます。

とにかく、完全なイベント コードは確かに役に立ちます。

于 2012-03-01T14:05:22.010 に答える
2

なぜあなたはそれを得ることができないのですか?

 if(e.Row.RowType==DataControlRowType.DataRow)
                Response.Write(((DataRowView)e.Row.DataItem)["downloadGuid"]);
于 2012-03-01T14:22:13.967 に答える