DataGrid中超级链接列之使用技巧

本文通过两个具体实例展示了如何使用ASP.NET中的超级链接控件实现不同页面间的跳转与使用JavaScript弹窗展示详细信息的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现在网站上用超级链接列的地方非常多,比如,一个新闻标题,你要先看它的详细信息,一个学生名字,点击它,然后看他/她的详细信息,它可以这样做,要么转到另外一个页面去,也可以用javascript弹出一个小页面,我觉得这样看起来会比较舒服点,因为,不用每次都转到另外一个页面去,在这里我把两种效果都做出来了, 供大家和自己以后参考。(这里我使用Northwind中的Employees这个表的数据,数据控件是DataGridRepeater

效果一:转到另外一个页面去

 

第一个页面前台代码:

<asp:HyperLinkColumn DataNavigateUrlField="EmployeeID" DataNavigateUrlFormatString="Webform2.aspx?id={0}"

                                          DataTextField="FirstName" HeaderText="姓氏"></asp:HyperLinkColumn>

 

第一个页面后台代码:

private void Page_Load(object sender, System.EventArgs e)

              {

                     // 在此处放置用户代码以初始化页面

                     SqlConnection con=new SqlConnection("server=.;database=Northwind;uid=sa;pwd=sa");

                     con.Open();

                     SqlCommand cmd=new SqlCommand("select * from Employees",con);

                     SqlDataReader sdr=cmd.ExecuteReader();

                     this.DataGrid1.DataSource=sdr;

                     this.DataBind();

                     con.Close();

                     sdr.Close();

                    

                    

              }

第二个页面的前台代码:

<asp:Repeater id="Repeater1" runat="server">

                                                        <ItemTemplate>

                                                               <table>

                                                                      <tr>

                                                                             <td width="200">员工姓氏:<%#DataBinder.Eval(Container.DataItem,"FirstName")%></td>

                                                                             <td width="200">员工名字:<%#DataBinder.Eval(Container.DataItem,"LastName")%></td>

                                                                      </tr>

                                                                      <tr>

                                                                             <td width="200">员工生日:<%#DataBinder.Eval(Container.DataItem,"BirthDate")%></td>

                                                                      </tr>

                                                                      <tr>

                                                                             <td width="200">称谓:<%#DataBinder.Eval(Container.DataItem,"TitleOfCourtesy")%></td>

                                                                             <td width="200">籍贯:<%#DataBinder.Eval(Container.DataItem,"City")%></td>

                                                                      </tr>

                                                               </table>

                                                        </ItemTemplate>

                                                 </asp:Repeater>

第二页面的后台代码:

private void Page_Load(object sender, System.EventArgs e)

              {

                     // 在此处放置用户代码以初始化页面

               string ID=     Request.QueryString["id"].ToString();

                     SqlConnection con=new SqlConnection("server=.;database=Northwind;uid=sa;pwd=sa");

                     con.Open();

                     SqlCommand cmd=new SqlCommand("select * from Employees where EmployeeID='"+ ID+"'",con);

                     SqlDataReader sdr=cmd.ExecuteReader();

                     this.Repeater1.DataSource=sdr;

                     this.DataBind();

                     con.Close();

                     sdr.Close();

 

              }

效果二:使用javascript弹出小页面

 

第一个页面前台:

<asp:HyperLinkColumn DataNavigateUrlField="EmployeeID" DataNavigateUrlFormatString="javascript:var w=window.open('WebForm2.aspx?id={0}','新的页面','directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,height=400,width=500')"

                                          DataTextField="LastName" HeaderText="名字"></asp:HyperLinkColumn>

其余的都和第一种做法一样的。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值