我有一个带有一些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