我有一個帶有一些BoundFields和一些HyperLinkFields的GridView。 HyperLinkField,我想分配一個NavigateUrl只有在其中有文字「拒絕」的單元格。如何根據內容將NavigateUrl分配給HyperLinkField(GridView)
這裏是我的標記:
<asp:GridView ID="gvS25ATransactions" CellSpacing="-1" GridLines="None" AutoGenerateColumns="false" OnPreRender="gvS25ATransactions_PreRender" AllowPaging="true" AllowSorting="true" PageSize="10" runat="server">
<Columns>
<asp:BoundField DataField="SIN" SortExpression="SIN" HeaderText="<%$ Resources:S25ATransactions, litSIN %>" />
<asp:BoundField DataField="TRANSACTION_TYPE_DESC_EN" SortExpression="TRANSACTION_TYPE_DESC_EN" HeaderText="<%$ Resources:S25ATransactions, litType %>" />
<asp:BoundField DataField="TRANSACTION_TYPE_DESC_FR" SortExpression="TRANSACTION_TYPE_DESC_FR" HeaderText="<%$ Resources:S25ATransactions, litType %>" />
<asp:BoundField DataField="DATE_UPDATED" SortExpression="DATE_UPDATED" HeaderText="<%$ Resources:S25ATransactions, litDate %>" />
<asp:BoundField DataField="USER_CODE" SortExpression="USER_CODE" HeaderText="<%$ Resources:S25ATransactions, litUser %>" />
<asp:HyperLinkField DataTextField="STATUS_DESC_EN" SortExpression="STATUS_DESC_EN" HeaderText="<%$ Resources:S25ATransactions, litStatus %>" />
<asp:HyperLinkField DataTextField="STATUS_DESC_FR" SortExpression="STATUS_DESC_FR" HeaderText="<%$ Resources:S25ATransactions, litStatus %>" />
</Columns>
<PagerStyle CssClass="pagination" />
而這正是我試圖到目前爲止做:
Protected Sub gvS25ATransactions_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvS25ATransactions.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
For Each column As DataControlField In gvS25ATransactions.Columns
If column.HeaderText = "Status" Or column.HeaderText = "Statut" Then
For i As Integer = 0 To gvS25ATransactions.Rows.Count - 1
If gvS25ATransactions.Rows(i).Cells(5).Text = "Rejected by SD110" Then
Dim hl As HyperLink = TryCast(e.Row.FindControl("HyperLink1"), HyperLink)
hl.NavigateUrl = "#coucou"
End If
Next
End If
Next
End If
End Sub
細胞與文本「拒絕」將在任第5或第6欄(一個是英文,另一個是法文)。
當我做了上面的代碼,它永遠不會在這個循環。
For i As Integer = 0 To gvS25ATransactions.Rows.Count - 1
它說「我」沒有聲明。由於其保護級別,可能無法進入
幫助?
UPDATE
這裏是新的標記我已經把關於RedDevil79的建議
<asp:GridView ID="gvS25ATransactions" CellSpacing="-1" GridLines="None" AutoGenerateColumns="false" OnPreRender="gvS25ATransactions_PreRender" AllowPaging="true" AllowSorting="true" PageSize="10" runat="server">
<Columns>
<asp:BoundField DataField="SIN" SortExpression="SIN" HeaderText="<%$ Resources:S25ATransactions, litSIN %>" />
<asp:BoundField DataField="TRANSACTION_TYPE_DESC_EN" SortExpression="TRANSACTION_TYPE_DESC_EN" HeaderText="<%$ Resources:S25ATransactions, litType %>" />
<asp:BoundField DataField="TRANSACTION_TYPE_DESC_FR" SortExpression="TRANSACTION_TYPE_DESC_FR" HeaderText="<%$ Resources:S25ATransactions, litType %>" />
<asp:BoundField DataField="DATE_UPDATED" SortExpression="DATE_UPDATED" HeaderText="<%$ Resources:S25ATransactions, litDate %>" />
<asp:BoundField DataField="USER_CODE" SortExpression="USER_CODE" HeaderText="<%$ Resources:S25ATransactions, litUser %>" />
<asp:TemplateField SortExpression="STATUS_DESC_EN" HeaderText="<%$ Resources:S25ATransactions, litStatus %>">
<ItemTemplate>
<asp:HyperLink ID="STATUS_DESC_EN" runat="server"><%# Eval("STATUS_DESC_EN")%></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField SortExpression="STATUS_DESC_FR" HeaderText="<%$ Resources:S25ATransactions, litStatus %>">
<ItemTemplate>
<asp:HyperLink ID="STATUS_DESC_FR" runat="server"><%# Eval("STATUS_DESC_FR")%></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerStyle CssClass="pagination" />
這是VB代碼
Protected Sub gvS25ATransactions_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvS25ATransactions.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim hl As HyperLink = TryCast(e.Row.FindControl("STATUS_DESC_EN"), HyperLink)
Dim hl2 As HyperLink = TryCast(e.Row.FindControl("STATUS_DESC_FR"), HyperLink)
If hl.Text = "Rejected by SD110" Or hl2.Text = "Rejeté par SD110" Then
hl.NavigateUrl = "#coucou"
hl2.NavigateUrl = "#coucoufr"
End If
End If
End Sub
這個問題我我現在面臨的是hl.Text和hl2.Text總是=「」所以它從來沒有在if語句
所有在GridView的文本來自數據庫文本‘拒絕’將在STATUS_DESC_EN或STATUS_DESC_FR(’Rejet作品」在這種情況下, )列 – Karinne 2013-02-15 15:55:09
你確定錯誤是指代碼中的'i'嗎?我沒有看到它的任何問題 – AbZy 2013-02-15 15:56:39
以及...沒有錯誤,我...它只是它永遠不會進入循環,因爲它說「'我'沒有宣佈。它可能無法訪問,由於它的保護級別「 – Karinne 2013-02-15 15:59:20