从SQL数据库检索动态内容并将其显示到ASP.NET页面中

时间:2012-04-17 05:45:42

标签: c# asp.net

我目前正在开发asp.net的新闻门户网站。我在sql server 2008中创建了一个带参数的表(NewsId,NewsTitle,NewsDetails,NewsCategory)。我现在能够从数据库中动态检索NewsTitle并将其显示在我的aspx页面中。 现在我想为特定的NewsTitle传递NewsId,然后在单独的aspx页面中检索NewsDetails。在ASP.NET中执行此操作的最佳方法是什么?我不希望每次点击指向NewsTitle的链接时都创建新的aspx页面,而是我有兴趣使用相同的Details页面并传递不同的ID参数?

的问候,

3 个答案:

答案 0 :(得分:2)

我会将它们放在同一页面上,并使用类似面板的东西来使用主 - 细节模式来切换可见性:

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

这将给你基本的想法;链接的示例显示两者,但正如我所说,单击按钮即可打开和关闭它们。

答案 1 :(得分:1)

您可以采取以下方法:

  1. 在Gridview中显示HyperLink以显示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显示数据库中的详细信息    }

答案 2 :(得分:0)

您可以添加一个textBox,其visible属性设置为False,当您检索NewsDetails时,将其设置为textBox并将其可见性设置为True;

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

void GetNewsDetails()
{
NewsDetails.Text=GetDetailsQuery;
NewsDetails.Visible=True;
}