0

私は現在、asp.net でニュース ポータル Web サイトの開発に取り組んでいます。パラメータ(NewsId、NewsTitle、NewsDetails、NewsCategory)を使用してSQL Server 2008にテーブルを作成しました。データベースから NewsTitle を動的に取得し、aspx ページに表示できるようになりました。次に、特定の NewsTitle の NewsId を渡し、別の aspx ページで NewsDetails を取得します。ASP.NET でこれを行う最善の方法は何ですか? NewsTitle へのリンクがクリックされるたびに新しい aspx ページを作成するのではなく、同じ詳細ページを使用して異なる ID パラメーターを渡したいですか?

よろしく、

4

3 に答える 3

2

両方を同じページに保持し、パネルのようなものを使用してマスターと詳細のパターンを採用して、可視性を切り替えます。

http://leedumond.com/blog/master-detail-editing-inserting-deleting-with-a-listview-and-detailsview/

これで基本的なアイデアが得られます。リンクされたサンプルは両方を示していますが、ボタンをクリックするだけでオンとオフを切り替えるのは簡単なことです。

于 2012-04-17T05:51:51.653 に答える
1

次のアプローチを実行できます。

  1. グリッドビューでハイパーリンクを取得して、NewsTitleを表示します。

    <asp:GridView ID="GridView1" runat="server">
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                     <asp:HyperLink runat="server" ID="hl" NavigateUrl='<%#"NewsDetails.aspx?Newsid="+ Eval("NewsId") %>' Text='<%# Eval("NewsTitle") %>'></asp:HyperLink>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    

    GridViewデータソースをコードビハインドでバインドします。

    protected void getNewsDetails()
    {
        DataTable dtNewsDetails = new DataTable();
        //retrieve data from database into the DataTable
        GridView1.DataSource = dtNewsDetails;
        GridView1.DataBind();
    }
    
  2. これで、GridView HyperLinkがNewsIdをクエリ文字列としてNewsDetails.aspxに移動するので、それに応じてNewsDetails.aspxページに詳細を表示します。

    protected void Page_Load(object sender、EventArgs e){string Newsid = Request.QueryString ["Newsid"]。ToString(); //Newsidを使用してデータベースの詳細を表示します}

于 2012-04-17T06:30:13.517 に答える
0

visible 属性が False に設定された textBox を追加し、NewsDetails を取得するときにそれを textBox に設定し、visibility を True に設定することができます。

<asp:TextBox ID="NewsDetails" runat="server" TextMode="MultiLine" 
                        Height="30px" Width="200px" Visible="False" />

void GetNewsDetails()
{
NewsDetails.Text=GetDetailsQuery;
NewsDetails.Visible=True;
}
于 2012-04-17T05:53:33.067 に答える