关于我们
关于我们
产品服务
产品服务
推广运营
推广运营
网站建设
网站建设
微信公众号
微信公众号
小程序开发
小程序开发
APP开发
APP开发
首页
首页
2019/4/10 9:22:22
新闻网站或者其它类似网站中,点击新闻标题,然后打开一个新页面,把新闻标题对应的详细内容显示出来,是一个常用技术。现在谈一下如何在ASP.NET上完成。
1、首先在Default.aspx页面上建立一个SqlDataSource控件,比如下面一个简单的查询:
Select NewsId, Title, SubmitDate from NewsTable
2、然后建立一个GridView控件,点击SmartTag,选择数据源为上边刚刚建立的这个数据源
3、同样在这个GridView控件的SmartTag菜单里,点击“编辑列”,进入“字段”对话框,这里主要讲标题的设置,其它相对简单。把“选定的字段”窗格中自动绑定的那个Title字段删除,然后在“可用字段”窗格内选定Hyperlinkfield,点击“添加”按钮,下边“选定的字段”窗格会出现一个新添加的Hyperlinkfield,这就是我们需要主要修改的字段。
4、在“选定的字段”窗格中选定Hyperlinkfield, 注意看右边相应的"Hyperlinkfield属性"窗格,如果是按分类排序属性的话,第二个项目就是数据,里边含有4个属性,这4个属性了解,任务也就完成,现在讲一下这4个属性:
DataNavigateUrlFields:这个是指定链接中使用数据表的哪个列值进行链接,现在自然是根据News表中的主键来找到相关新闻,所以这个值应该是主键字段(注意对应你新闻表中的主键名称,本例中是NewsId,看第1条的查询语句),将来显示相应新闻详细内容,就以这个Id值来查询唯一的一条记录。这个里边在本例中设为:NewsId
DataNavigateUrlFormatString:这是用来格式化上边已经设定的值。上边只是一个查询相关NewsId的记录,具体查到的这一条NewsId的记录,应该显示在哪个页面,由这里来决定,将光标点入这个属性,下边会有属性解释说,比如你可以写成:page.aspx?id={0} 这里{0}是占位符,是为刚才讲的第一个数据属性占位置的,比如如果将来用户点击NewsId = 18 的记录,page.aspx?NewsId={0}实际就变成了这样的内容: page.aspx?NewsId=18, 专业术语叫做QueryString,即查询字符串,用户在Default.aspx页面点击NewsId=18的新闻标题,就会跳转到page.aspx页面上。这里边在本例中设为:page.aspx?NewsId={0}
DataTextField:“绑定到超链接文本属性的字段”,这是你将光标点入这个属性时,下边的属性说明。具体意思就是:这个链接,在外表上,你要显示什么内容给用户看,给用户看主键的数字,对用户毫无意义。这个地方,应该填入“Title”字段,就是新闻的标题字段,用户看到的是标题,这样点击这个标题,就可以看到新闻具体内容了。这里边在本例中设为:Title
DataTextFormatString:这个最简单,点击光标进入,下边有属性说明,试一下,很容易理解意思,就是你可以除了显示标题外,可以加入一些你自己想显示的统一内容,比如设定为:点击进入{0},将来在标题前都会出现“点击进入”4个字。这个属性本例中不用,所以留为空白,不进行任何设定。
5、下边进行另外一个关键步骤,设定详细内容页面的查询。同样,在page.aspx页面建立一个SqlDataSource控件,还是查询NewsTable数据表,这里要选用标题、详细内容、上传日期等字段,但最重要的是,选定好要显示的字段后,不要急于点击“下一步”按钮,而是要点击“Where...”按钮,出现下边的窗口,在窗口中,在“列”(就是要进行条件查询字段)下拉框中,选定“NewsId”,“运算符”为等号,“源”下拉框中选择“QueryString”,因为第4步中DataNavigateUrlFormatString属性送来的page.aspx?NewsId={0}中,NewsId={0}就叫QueryString,利用这个传递来的参数,来决定本page.aspx页面显示哪一条记录的详细。配置好的界面如下图所示,注意记住点击“添加”按钮,才会把你的设置写入select语句中。
6、在page.aspx页面中建立一个DatailsView控件,把第5步做好的SqlDataSource作用它的数据源。至于具体DetailsView如何布局,你自己设计吧。
Done!工作完成,这是点击新闻标题进入新闻内容页面最常用的办法,而其中QueryString传递参数,也是页面间传递参数常用的办法。要注意的是:这种方法传递参数可以不至一个,也可以传递多个,如果传递多个,在DataNavigateUrlFields属性中可以点击后边有“...”那个小按钮,在新开窗口中输入多个值;同时在DataNavigateUrlFormatString属性中用{0},{1}分别表示第一个占位符,第二个占位符,对应前边要传递的多个参数。