0

我目前正在开发asp.net 中的新闻门户网站。我在 sql server 2008 中创建了一个带有参数(NewsId、NewsTitle、NewsDetails、NewsCategory)的表。我现在能够从数据库中动态检索 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. 在 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显示来自数据库的详细信息}

于 2012-04-17T06:30:13.517 回答
0

您可以添加一个带有 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;
}
于 2012-04-17T05:53:33.067 回答