当前位置:编程学习 > C#/ASP.NET >>

点击新闻标题后 怎样获得它的ID 然后在另一个页面显示相应内容?

用GridView显示新闻标题  怎样点击其中任意标题后  在另一个页面显示该标题对应的内容  不会取它的ID  怎样取得???  --------------------编程问答-------------------- 给我邮箱 给你点源码 --------------------编程问答-------------------- happy_siyan@163.com --------------------编程问答-------------------- GridView1.DataKeys[index].Value --------------------编程问答-------------------- 就像删除标题时用CommandName    CommandArgument确定是删除那一条   那显示是怎么获得ID??? --------------------编程问答-------------------- 在前台  新闻标题那里 <a href='news_detail.aspx?id=<%#Eval("idx")%>' target="_self"><%

#Eval("news_title").ToString() %></a>

news_detail.aspx  用request取就行啦

--------------------编程问答-------------------- 后台
 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "update")
        {
            Response.Redirect("ProductFoundModify.aspx?id=" + e.CommandArgument.ToString());

        }
    }

前台

<asp:TemplateField HeaderText="操作">
                           <ItemTemplate>
                               <asp:Button ID="btxiugai" runat="server" BorderStyle="None" Text="修改" CommandName="update" 
                        CommandArgument='<%# Eval("ProductID") %>'/>
                               <asp:Button ID="btshanchu" runat="server" BorderStyle="None" 
                                    Text="删除" OnClientClick="return confirm('确定删除选中产品吗?删除产品将无法恢复!!!')" CommandName="delete" 
                        CommandArgument='<%# Eval("ProductID") %>' />
                           </ItemTemplate>
--------------------编程问答--------------------
引用 4 楼 happy_siyan 的回复:
就像删除标题时用CommandName CommandArgument确定是删除那一条 那显示是怎么获得ID???



这里就要 设置 gridview的 DataKeyNames  然后在删除时间里面  DataKeys[e.RowIndex].value取

比方说:
<asp:GridView ID="Customermanage" runat="server" DataKeyNames="idx" OnRowDeleting="Customermanage_RowDeleting"> 

然后我后台:int customerId = int.Parse(Customermanage.DataKeys[e.RowIndex].Value.ToString());
这我的customerId取出来的就是这一行的 IDX啦 然后在传进方法进行删除数据啦 --------------------编程问答-------------------- 删除 接上
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        int id = int.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString());
        Maticsoft.Model.NBWebModel_T_Product mdprd = prd.GetModel(id);
        string imageursml = "~/Manager/ImageProductSml/" + mdprd.SmlImage;
        string x = Server.MapPath(imageursml);
        System.IO.File.Delete(x);
        string imageurbig = "~/Manager/ImageProductBig/" + mdprd.BigImage;
        string y = Server.MapPath(imageurbig);
        System.IO.File.Delete(y);
        prd.Delete(id);
        Response.Write("<script>alert('删除成功!')</script>");
        bing((int)ViewState["pagesize"], AspNetPager1.CurrentPageIndex, ViewState["strWhere"].ToString());
    }
--------------------编程问答-------------------- 主要是运用到了GridView的HyperLinkField列,该字段在数据绑定为超链接的形式。
通过改列自带的属性,利用QueryString的形式传值,开新页面。

详细的可去查阅 ASP.NET 开发宝典,这本书,里面的5.8,实例097。网上有电子版和源码。里面介绍的很详细。 --------------------编程问答-------------------- 我知道删除怎么写  就是不知道怎么显示点击的那个标题的内容 --------------------编程问答-------------------- <asp:TemplateField HeaderText="产品中文名">
                 <ItemTemplate>
                       <a href="ProductFoundModify.aspx?id=<%#Eval("ProductID") %>">   <asp:Label ID="lab_pronamecn" runat="server" Text='<%# ClassComm.GetShortTitle(Eval("ProductCn").ToString(),7) %>'></asp:Label></a>
                    </ItemTemplate>
                </asp:TemplateField>
或者用HyperLink --------------------编程问答--------------------  <a href='show.aspx?id=<%# Eval("XTBH") %>' target="_blank">
 <%# Eval("Title")%>
</a>
string id=Request.QueryString["id"]=null?"0":Request.QueryString["id"].ToString(); --------------------编程问答--------------------
引用 12 楼 wuyq11 的回复:
<a href='show.aspx?id=<%# Eval("XTBH") %>' target="_blank">
 <%# Eval("Title")%>
</a>
string id=Request.QueryString["id"]=null?"0":Request.QueryString["id"].ToString();

我认为 我和这位已经说了 你取到了新闻的id 难道还不能显示该ID数据的具体信息吗? --------------------编程问答--------------------
引用 2 楼 happy_siyan 的回复:
happy_siyan@163.com


不好意思 中午吃饭去了~ 才发 --------------------编程问答--------------------

不好意思 中午吃饭去了~ 才发
[/Quote]

呵呵  谢谢了  已经收到了 --------------------编程问答--------------------
引用 1 楼 klyh1207 的回复:
给我邮箱 给你点源码

请问NewsView.aspx中的newsid = Convert.ToInt32(Request.QueryString["id"].ToString());中的id是从哪里接收来的??? --------------------编程问答-------------------- 在前台 新闻标题那里 <a href='news_detail.aspx?id=<%#Eval("idx")%>' target="_self"><%

#Eval("news_title").ToString() %></a>
--------------------编程问答--------------------
引用 16 楼 happy_siyan 的回复:
引用 1 楼 klyh1207 的回复:
给我邮箱 给你点源码

请问NewsView.aspx中的newsid = Convert.ToInt32(Request.QueryString["id"].ToString());中的id是从哪里接收来的???


NewsList.aspx 前台
                                            <asp:HyperLink ID="Title" NavigateUrl='<%# "~/NewsView.aspx?ID=" + Eval("NewsID") %>' runat="server" Target="_blank" Text='<%# Eval("NewsTitle") %>'></asp:HyperLink>
--------------------编程问答--------------------
引用 18 楼 klyh1207 的回复:
引用 16 楼 happy_siyan 的回复:
引用 1 楼 klyh1207 的回复:
给我邮箱 给你点源码

请问NewsView.aspx中的newsid = Convert.ToInt32(Request.QueryString["id"].ToString());中的id是从哪里接收来的???


NewsList.aspx 前台
  <asp:HyperLink ID……



<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>">
                            </asp:SqlDataSource>是干什么用的?用GridView不就能够绑定数据了吗?



这是写的显示标题的GridView源码:<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            BorderStyle="None" GridLines ="None" Width="363px" OnRowCommand="GridView1_RowCommand" >
            <RowStyle BorderStyle="None" />
            <Columns>
                <asp:BoundField ShowHeader="False">
                    <ControlStyle Width="30px" />
                    <FooterStyle BorderStyle="None" />
                </asp:BoundField>
                <asp:HyperLinkField DataTextField="NewsName" 
                    DataNavigateUrlFields="NewsUrl" ShowHeader="False" 
                    DataNavigateUrlFormatString="Pro_Show.aspx?id=9"  Target="_blank" >
                    <ControlStyle CssClass="zi" Width="250px"   />
                </asp:HyperLinkField>
                <asp:HyperLinkField DataNavigateUrlFields="NewsUrl" DataTextField="Lrsj" 
                    ShowHeader="False" Target="_blank">
                    <ControlStyle CssClass="zi" />
                </asp:HyperLinkField>
            </Columns>
            <EditRowStyle BorderStyle="None" />
        </asp:GridView>

要怎么修改  在Pro_Show.aspx中显示对应ID的内容???

--------------------编程问答-------------------- 这个 网站 其实 几乎都是手工拖出来的

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>">
  </asp:SqlDataSource>

就是手动拖出来的SqlDataSource 控件

<asp:HyperLinkField DataTextField="NewsName"  
  DataNavigateUrlFields="NewsUrl" ShowHeader="False"  
  DataNavigateUrlFormatString="Pro_Show.aspx?id=9" Target="_blank" >

你已经将id通过url 传到下个页面了
 通过Request.QueryString["id"].ToString() 获取到

然后到数据库中进行查询 绑定到页面
--------------------编程问答--------------------
引用 20 楼 klyh1207 的回复:
这个 网站 其实 几乎都是手工拖出来的

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>">
  </asp:SqlDataSource>

就是手动拖出来的SqlDataSource 控件

<asp:H……



那SqlDataSource 控件是起的什么作用???
其实DataNavigateUrlFormatString="Pro_Show.aspx?id=9中只是把ID=9的传到第二个页面  无论点哪一个标题  第二个页面显示的始终是ID=9的那条新闻的内容  要怎么修改???? --------------------编程问答-------------------- SqlDataSource
就是要读取你数据库的数据(额  不会的话去小小研究下5分钟搞定)

DataNavigateUrlFormatString="Pro_Show.aspx?id=9

你都把id写死了  可不是 怎么传都是9

你把SqlDataSource 取出的id字段 绑定到id后面啊

就是Eval("NewsID")  这个 --------------------编程问答-------------------- 这个都到首页了 --------------------编程问答--------------------
引用 23 楼 jin225 的回复:
这个都到首页了

?????? --------------------编程问答-------------------- 学习·· --------------------编程问答--------------------
引用 5 楼 sibiyellow 的回复:
在前台  新闻标题那里 <a href='news_detail.aspx?id=<%#Eval("idx")%>' target="_self"><%

#Eval("news_title").ToString() %></a>

news_detail.aspx  用request取就行啦

这个没问题 --------------------编程问答--------------------
引用 26 楼 hitlcyu19 的回复:
引用 5 楼 sibiyellow 的回复:

在前台 新闻标题那里 <a href='news_detail.aspx?id=<%#Eval("idx")%>' target="_self"><%

#Eval("news_title").ToString() %></a>

news_detail.aspx 用request取就行啦

这个没问题


用GridView怎么用<a>?提示错误??? --------------------编程问答--------------------
引用 26 楼 hitlcyu19 的回复:
引用 5 楼 sibiyellow 的回复:

在前台 新闻标题那里 <a href='news_detail.aspx?id=<%#Eval("idx")%>' target="_self"><%

#Eval("news_title").ToString() %></a>

news_detail.aspx 用request取就行啦

这个没问题


这是那个显示标题的GridView控件: <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            BorderStyle="None" GridLines ="None" Width="363px" OnRowCommand="GridView1_RowCommand" >
            <RowStyle BorderStyle="None" />
            <Columns>
                <asp:BoundField ShowHeader="False">
                    <ControlStyle Width="30px" />
                    <FooterStyle BorderStyle="None" />
                </asp:BoundField>
                <asp:HyperLinkField DataTextField="NewsName"  
                    DataNavigateUrlFields="NewsUrl" ShowHeader="False" 
                    DataNavigateUrlFormatString="Pro_Show.aspx?id=9"  Target="_blank" >
                    <ControlStyle CssClass="zi" Width="250px"   />
                </asp:HyperLinkField>                
                <asp:HyperLinkField DataNavigateUrlFields="NewsUrl" DataTextField="Lrsj" 
                    ShowHeader="False" Target="_blank">
                    <ControlStyle CssClass="zi" />
                </asp:HyperLinkField>
            </Columns>
            <EditRowStyle BorderStyle="None" />
        </asp:GridView>怎么传id??? --------------------编程问答--------------------

<asp:HyperLinkField DataTextField="NewsName"   
  DataNavigateUrlFields="NewsUrl" ShowHeader="False"  
  DataNavigateUrlFormatString="Pro_Show.aspx?id=9" Target="_blank" >
改成
<asp:HyperLinkField DataTextField="NewsName"   
  DataNavigateUrlFields="NewsUrl" ShowHeader="False"  
  DataNavigateUrlFormatString="Pro_Show.aspx?id="+Eval("新闻id字段名") Target="_blank" >


我都无语了都

--------------------编程问答-------------------- 虽然我只是路过看看的,但还是要顶一个,5楼的回复写得真棒!
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,