用ASP.net的datalist控件做新闻栏的问题~~
新闻栏我用的是datalist控件里面插入表格后添加了一个LinkButton1控件,然后在该控件的任务栏编辑DataBindings在Text属性绑定Eval("Tit...
新闻栏我用的是datalist控件里面插入表格后添加了一个LinkButton1控件,然后在该控件的任务栏编辑DataBindings在Text属性绑定Eval("Title")运行后能显示数据库的的新闻标题。之后我新建一个页面,添加了一个Label控件和TextBox控件,现在遇到的问题是怎么样能在第一个页面点击该标题以后,在第二个页面里显示出该新闻的标题和内容也就是Title属性和Content属性。。。 望大虾细心指点,小弟是新手~~~~
--------------------------------------
public partial class Default2 : System.Web.UI.Page
{
CommonClass CC = new CommonClass();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//实例化SqlConnection对象
SqlConnection sqlCon = new SqlConnection();
//实例化SqlConnection对象连接数据库的字符串
sqlCon.ConnectionString = "server=AROMA\\SQLEXPRESS;uid=sa;pwd=123;database=db_News";
//定义SQL语句
string SqlStr = "select*from tb_News";
//实例化SqlDataAdapter对象
SqlDataAdapter da = new SqlDataAdapter(SqlStr, sqlCon);
//实例化数据集DataSet
DataSet ds = new DataSet();
da.Fill(ds, "tb_News");
//绑定DataList控件
DataList1.DataSource = ds;//设置数据源,用于填充控件中的项的真值表
DataList1.DataBind();//将控件及其所有子控件绑定到指定的数据源
}
}
第一个页面的CS代码~~
能给点具体的事例么。。。我的新闻列表有主键ID 展开
--------------------------------------
public partial class Default2 : System.Web.UI.Page
{
CommonClass CC = new CommonClass();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//实例化SqlConnection对象
SqlConnection sqlCon = new SqlConnection();
//实例化SqlConnection对象连接数据库的字符串
sqlCon.ConnectionString = "server=AROMA\\SQLEXPRESS;uid=sa;pwd=123;database=db_News";
//定义SQL语句
string SqlStr = "select*from tb_News";
//实例化SqlDataAdapter对象
SqlDataAdapter da = new SqlDataAdapter(SqlStr, sqlCon);
//实例化数据集DataSet
DataSet ds = new DataSet();
da.Fill(ds, "tb_News");
//绑定DataList控件
DataList1.DataSource = ds;//设置数据源,用于填充控件中的项的真值表
DataList1.DataBind();//将控件及其所有子控件绑定到指定的数据源
}
}
第一个页面的CS代码~~
能给点具体的事例么。。。我的新闻列表有主键ID 展开
2个回答
展开全部
你的tb_News表中有新闻的主键ID的吧?
你可以把这个主键ID绑到DataList的关键字上去(也可以绑到linkbutton的CommandArgument上去)
点Linkbutton的时候,将这个主键ID取出来,传到第二个页面上去(可以用session,页面传值等)
在第二个页面通过这个主键ID,到数据库中取出这条新闻的Title和Content,再绑到页面中的Label和TextBox就可以了
在第一个页面Datalist中,可以将用来跳转的linkbutton设置如下:
<asp:LinkButton ID="LinkButtonProgrammeName" runat="server" CommandName="RedirectTo"
CommandArgument='<%#Eval("ID") %>' Text='<%#Eval("ID") %>' CausesValidation="false"></asp:LinkButton>
给这个Datalist添加OnItemCommand事件:OnItemCommand="DataList1_ItemCommand"
在第一个页面的cs后台代码中写OnItemCommand事件:
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "RedirectTo")
{
int ID = Convert.ToInt32(e.CommandArgument.ToString());
Response.Redirect("Default.aspx?ID=" + ID);
}
}
(我是假设这个主键ID为INT型的,如果不是的话就不需要转换类型,假设跳转过去的第二个页面为Default.aspx)
在第二个页面pagg_load事件里
private string ID;
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
ID = Request.QueryString["ID"];
if (ID != "")
{
GetTitle(int.Parse(ID));
GetContent(int.Parse(ID));
}
}
}
然后就是在下面两个方法中从数据库中查出相应的title和content
public void GetTitle(int ID)
{
//在此处通过ID查这条新闻的Title
this.Label.Text=//查询出的title
}
public void GetContent(int ID)
{
//在此处通过ID查这条新闻的Content
this.Text.Text=//查询出的Content
}
查询title和content的方式和你绑datalist时候一样,绑datalist时候是string SqlStr = "select*from tb_News";
现在换成string SqlStr = "select*from tb_News where ID="+ID;
如果查询出来的ds的表有数据,即存在对应着这个ID的新闻,可以在ds.Table[0].Row[0]即第一行中拿到title和content
你可以把这个主键ID绑到DataList的关键字上去(也可以绑到linkbutton的CommandArgument上去)
点Linkbutton的时候,将这个主键ID取出来,传到第二个页面上去(可以用session,页面传值等)
在第二个页面通过这个主键ID,到数据库中取出这条新闻的Title和Content,再绑到页面中的Label和TextBox就可以了
在第一个页面Datalist中,可以将用来跳转的linkbutton设置如下:
<asp:LinkButton ID="LinkButtonProgrammeName" runat="server" CommandName="RedirectTo"
CommandArgument='<%#Eval("ID") %>' Text='<%#Eval("ID") %>' CausesValidation="false"></asp:LinkButton>
给这个Datalist添加OnItemCommand事件:OnItemCommand="DataList1_ItemCommand"
在第一个页面的cs后台代码中写OnItemCommand事件:
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "RedirectTo")
{
int ID = Convert.ToInt32(e.CommandArgument.ToString());
Response.Redirect("Default.aspx?ID=" + ID);
}
}
(我是假设这个主键ID为INT型的,如果不是的话就不需要转换类型,假设跳转过去的第二个页面为Default.aspx)
在第二个页面pagg_load事件里
private string ID;
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
ID = Request.QueryString["ID"];
if (ID != "")
{
GetTitle(int.Parse(ID));
GetContent(int.Parse(ID));
}
}
}
然后就是在下面两个方法中从数据库中查出相应的title和content
public void GetTitle(int ID)
{
//在此处通过ID查这条新闻的Title
this.Label.Text=//查询出的title
}
public void GetContent(int ID)
{
//在此处通过ID查这条新闻的Content
this.Text.Text=//查询出的Content
}
查询title和content的方式和你绑datalist时候一样,绑datalist时候是string SqlStr = "select*from tb_News";
现在换成string SqlStr = "select*from tb_News where ID="+ID;
如果查询出来的ds的表有数据,即存在对应着这个ID的新闻,可以在ds.Table[0].Row[0]即第一行中拿到title和content
展开全部
这是显示列表的页面,假设Show.aspx是显示详细信息的页面
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<asp:LinkButton ID="lbtnTitle" runat="server" Text='<%# Eval("Title") %>' PostBackUrl='<%# Eval("ID","~/Show.aspx?id={0}")%>' ></asp:LinkButton>
</ItemTemplate>
<HeaderTemplate>
标题
</HeaderTemplate>
</asp:DataList>
在Show.aspx的Page_Load中这样写
if (!IsPostBack)
{
if (Request.QueryString["id"] == null)
{
Response.Redirect("List.aspx");
}
int id = Convert.ToInt32(Request.QueryString["id"]);
//此处根据ID查询出一个tb_News对象,假定为new
TB_News news=new TB_News(); //这里应为查询出一个新闻对象
this.lblTitle.Text=new.Title; //新闻标题
this.txtContent.Text=new.Content; //新闻内容
}
本人水平不高,也只能给你提供这些了
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<asp:LinkButton ID="lbtnTitle" runat="server" Text='<%# Eval("Title") %>' PostBackUrl='<%# Eval("ID","~/Show.aspx?id={0}")%>' ></asp:LinkButton>
</ItemTemplate>
<HeaderTemplate>
标题
</HeaderTemplate>
</asp:DataList>
在Show.aspx的Page_Load中这样写
if (!IsPostBack)
{
if (Request.QueryString["id"] == null)
{
Response.Redirect("List.aspx");
}
int id = Convert.ToInt32(Request.QueryString["id"]);
//此处根据ID查询出一个tb_News对象,假定为new
TB_News news=new TB_News(); //这里应为查询出一个新闻对象
this.lblTitle.Text=new.Title; //新闻标题
this.txtContent.Text=new.Content; //新闻内容
}
本人水平不高,也只能给你提供这些了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询