排除某些行中的列 - SQL / Asp.Net

时间:2017-05-25 07:09:14

标签: sql asp.net vb.net

我想要更改为我编写的一些代码。我想省略显示tblResults.videoLink =''

的超链接

超链接在表格中显示为“视频链接”,以便人们可以点击它。我只希望单词/超链接“Video Link”出现在人们输入的行中。

代码是Microsoft SQL,但是是在ASPX文件中编写的。后端是VB但是VB几乎是空的.ASPX文件处理所有内容......

    <h1>Recent Results</h1>
    <asp:Panel ID="pnlMyWishes" runat="server">

        <asp:SqlDataSource ID="DSWishes" runat="server" ConnectionString="<%$ ConnectionStrings:DBConnectionString %>" SelectCommand="SELECT     TOP (100) PERCENT tblResults.wishID, tblResults.Player1AccountID, tblResults.Player2AccountID, tblResults.Player1Result, tblResults.Player2Result, tblResults.venue, tblResults.potSize, tblResults.player1Name, tblResults.player2Name, tblResults.videoLink, tblResults.date FROM tblResults ORDER BY tblResults.date DESC">
        </asp:SqlDataSource>
        <asp:GridView ID="gdvWishes" width="100%" runat="server" AllowPaging="True" AutoGenerateColumns="False" CssClass="mGrid" DataKeyNames="wishID" DataSourceID="DSWishes" PageSize="20" AllowSorting="True">
            <AlternatingRowStyle CssClass="alt" />
            <Columns>

                <asp:BoundField DataField="player1Name" HeaderText="Player 1" />      
                <asp:TemplateField HeaderText="Result">
                    <ItemTemplate>
                        <asp:Label ID="lblP1" Text='<%# Eval("player1Result").ToString %>' runat="server" Visible="true">
                        </asp:Label><asp:Label ID="lblVs" Text=" - " runat="server" Visible="true"></asp:Label>
                        <asp:Label ID="lblP2" Text='<%# Eval("player2Result").ToString %>' runat="server" Visible="true"></asp:Label>
                    </ItemTemplate>
                    <ItemStyle Width="17%" />
                </asp:TemplateField>
                <asp:BoundField DataField="player2Name" HeaderText="Player 2" />

                <asp:BoundField DataField="potSize" HeaderText="Pot" />
                <asp:BoundField DataField="venue" HeaderText="Venue" />
                <asp:TemplateField ShowHeader="False">
                    <ItemTemplate>
                        <asp:HyperLink ID="hypVideoLink" runat="server" NavigateUrl='<%# Eval("videoLink").ToString %>'>Video Link</asp:HyperLink>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </asp:Panel>

1 个答案:

答案 0 :(得分:1)

创建如下所示的子广告,在填充GridView数据的代码后调用它。

Private Sub HideBlankURLs()
    For Each r As GridViewRow in gdvWishes.Rows
        If r.RowType = DataControlRowType.DataRow Then //Execute the code only for datarow, excluding footer and header
            Dim hypURL As HyperLink
            hypURL = r.Cells(5).FindControl("hypVideoLink") //Goes to the column of VideoURL, index 5 is counting from 0 to 5
            If hypURL.NavigateURL = "" Then //Checks if the URL is blank, if it is then hide the hyperlink control
                hypURL.Visible = False
            End If
        End If
    Next r
End Sub

这将遍历所有行并在该列中查找控件,检查导航URL是否为空,然后隐藏该控件。

注意:用单引号(')替换(//),因为SO将其作为包含字符而不是注释的文本读取。