0

各データ バインド アイテムのリンクを置き換える必要があります。データ行のデータバインド イベントは既にチェックアウトしています。問題は、リンクが表示される場所を制御できないことです。私はjavascriptから離れて、ほとんどコードビハインドに留めようとしています。以下は、私のaspコードと私が持っている背後にあるコードです。また、html テンプレート項目に変更せずに、できるだけ同じままにしておきたいと思います。私が使用しているプロセスは次のとおりです。

ブログ エントリのすべてのフィールドとデータを含むカスタム オブジェクトがあります。これらのアイテムはリストに入れられ、データグリッドに提供されます。

   <asp:GridView ID="grdRecentNews" runat="server" AutoGenerateColumns="False" DataKeyNames="Key"
                            GridLines="None" PageSize="4" ShowHeader="False"
                            AllowPaging="True">
                            <PagerSettings Visible="False" />
                            <Columns>
                                <asp:TemplateField>
                                    <ItemTemplate>
                                        <blockquote>
                                           <%-- <strong><a href=**"News.aspx"**>--%>
                                            <strong><a href="News.aspx">
                                                <%#Eval("NewsDesc")%></a></strong>
                                            <br />
                                            <span class="italic">
                                                <%#Eval("NewsDate")%></span>
                                        </blockquote>
                                    </ItemTemplate>
                                </asp:TemplateField>
                            </Columns>
                        </asp:GridView>

これは、Databound イベントで使用したコードです。問題は、Rss オブジェクトのフィールドの 1 つにのみリンクを提供したいということです。上と下のように。データグリッドに追加された各アイテムの News.aspx" を rssobject の link プロパティに置き換えたい。

  Protected Sub grdRecentNews_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grdRecentNews.RowDataBound

        If e.Row.DataItem IsNot Nothing AndAlso e.Row.DataItem.ToString = "RssEntry" Then
            Dim curItem As RssEntry = CType(e.Row.DataItem, RssEntry)
            e.Row.Attributes.Add("href", curItem.Link) 'data-url
        End If

    End Sub
4

1 に答える 1

0

変更したい属性に <%#Eval %> ステートメントを挿入する方法を見つけました。rssobject の正しいプロパティとその動作を示します。

<Columns>
                            <asp:TemplateField>
                                <ItemTemplate>
                                    <blockquote>
                                        <strong><a href='<%#Eval("Link")%>'>
                                            <%#Eval("NewsDesc")%></a></strong>
                                        <br />
                                        <span class="italic">
                                            <%#Eval("NewsDate")%></span>
                                    </blockquote>
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
于 2013-04-09T03:16:22.217 に答える