怎么用.net实现不同页面之间超链接的动态传递。
例如,我后台页面增加《 新浪的网址 》前台就能出现一个能超链接到新浪首页的链接。还要求能保存到数据库中

解决方案 »

  1.   

    如果我在数据库中建表是这样的id 网名 网址
    1  新浪 www.sina.com 我想了一下可以用gridview实现绑定网名数据列,并将该列转变成超链接列。
    然后用select语句通过id号来查询网址并把它赋一个HyperLink。
    可现在的就有一个问题了
    怎么动态的生成这个 HyperLink呢?
      

  2.   

    开始的时候想了用拖个HyperLink并将它的text和navigateurl属性设置成空
    再从数据表中间传HyperLink.text属性和navigateurl属性。
    但这样就成静态的了,不能是数据库中几条记录就动态生成几个HyperLink
      

  3.   

    <asp:GridView ID="GridView1" runat="server">
                <Columns>
                <asp:TemplateField>
                 <ItemTemplate>
                        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="<%#DataBinder.Eval(Container.DataItem,"网址")%>"><%#DataBinder.Eval(Container.DataItem,"网名")%></asp:HyperLink>                   
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
       </asp:GridView> 绑定代码: SqlConnection con = new SqlConnection(连接字符串);
                SqlDataAdapter da=new SqlDataAdapter("select * from [表]",con);
                DataSet ds=new DataSet();
                da.Fill(ds);
                GridView1.DataSource=ds;
                GridView1.DataBind();
      

  4.   

    谢谢
    我去做做
    还能问你一个吗?怎么用C#.net做文件下载 能出现打开下载对话框的那种。
    简单点能实现就行
    谢了
      

  5.   

    我很菜哦
    麻烦了这个错误?编译错误 
    说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: CS0079: 事件“System.Web.UI.WebControls.BaseDataBoundControl.DataBound”只能出现在 += 或 -= 的左边源错误: 行 21:         da.Fill(ds);
    行 22:         GridView1.DataSource = ds;
    行 23:         GridView1.DataBound();
    行 24:     }
    行 25: }
     
      

  6.   

    点击的时候出现的路径是这样的:http://localhost:1152/mangweb/"<%#DataBinder.Eval(Container.DataItem,"%e7%bd%91%e5%9d%80")%请问这是什么原因?
      

  7.   

    改一下:<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#DataBinder.Eval(Container.DataItem,"网址")%>'><%#DataBinder.Eval(Container.DataItem,"网名")%></asp:HyperLink>    这样应该可以了
      

  8.   

    还有地址要是http://www.baidu.com,不能只是www.baidu.com
      

  9.   

    哇,好难的问题.
    这个该怎么做呢?
    直接拖个控件上去,选择连到数据库,连哪个表,SELET *,自己就出来了.
      

  10.   

    ...你看下数据库的基本操作吧,用sqldatareader读出全部数据,输出方法就很多了
      

  11.   

    还能帮我看看这个吗?我用fileupload控件做了一个上传的页面。运行成功后能将压缩文件上传到项目根目录的upload文件夹中,同时将上传的文件名称,大小,类型等信息保存在一个为
    t_upload的数据表中。然后我又用GridView1做了一个页面能显示上传的压缩文件的各项信息,并在GridView1中添加了一个ButtonField列作为下载按钮。
    我在GridView1中增加了一个GridView1_RowCommand的事件
    下面是我在该事件中的代码:
    {
            string filepath = Server.MapPath("~/upload/lele.rar"); 
            System.IO.FileStream fs = new System.IO.FileStream(filepath,System.IO.FileMode.Open);
            Response.ContentType = "application/zip";
            Response.AppendHeader("Content-Disposition", "attachment; filename=test.zip");
            long filesize = fs.Length;
            fs.Close();
            Response.AddHeader("Content-Length", filesize.ToString());
            Response.WriteFile(filepath);
                   Response.Flush(); 
    }这样就能实现lele.rar的下载。可如果我想从数据库中获得filepath、ContentType、ContentLength等信息
    实现不同压缩包的下载而不是只有lele.rar 的下载。帮帮吧
      

  12.   

    是这样吗?
    SqlConnection osqlconn = new SqlConnection(sqlconn);
     string asorts1 = "select atticle_sort from t_asorts where ID=1";
     SqlCommand cmdasorts1 = new SqlCommand(asorts1 ,osqlconn);
    osqlconn.Open();
            SqlDataReader rsasorts1 = cmdasorts1.ExecuteReader();
            if (rsasorts1.Read())
            {
                Label4.Text = rsasorts1[0].ToString();
            }
            rsasorts1.Close();
      

  13.   

    对了,用fileupload控件上传会遇到文件大小的限制,虽然可以改设置加大一些,但也有限,如果文件比较大,建议你用aspnetupload控件
      

  14.   

    我一开始考虑的就是这样了。
    可这样的话我就不能实现动态了呢
    错了,是这样 HyperLink.Text = rsasorts1[0].ToString();
      

  15.   


    那我又要学一下aspnetupload这个了咯
      

  16.   


    con = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"].ConnectionString);
            com = new SqlCommand();
            com.Connection = con;
            com.CommandText = "select * from [表]";
            con.Open();
            dr = com.ExecuteReader();
            int i = 1;
            while (dr.Read())
            {
                HyperLink HyperLink= new HyperLink();
                HyperLink.ID = "HyperLink" + i.ToString();
                HyperLink.NavigateUrl="你需要的";
                myPanel.Controls.Add(HyperLink);
                i++;
            }
           dr.Close()
           con.Close()
    myPanel是一个panel控件,你试试吧,我在外面没开发环境
      

  17.   

    sqldatareader dr = com.ExecuteReader();
    string str=string.Empty;
            while (dr.Read())
            {
                str+="<a href="+dr["网址"].ToString()+">"+dr["名称"]+"</a>"+"&nbsp;";
            }
    dr.Close();
    con.Close();
    this.div1.innerHtml=str;我想你还是用这个吧,比较简单一点。div1是一个DIV(层)的id,要给它加上runat="server"的属性,后台才能用
      

  18.   

    这个?编译错误 
    说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: CS0117: “System.Web.UI.HtmlControls.HtmlGenericControl”并不包含“innerHtml”的定义源错误: 行 30:         dr.Close();
    行 31:         con.Close();
    行 32:         this.div1.innerHtml = str;
    行 33: 
    行 34:     }
     源文件: e:\mangweb\Default2.aspx.cs    行: 32 
      

  19.   

    工作啊
    不晓得要怎么描叙哦
    打杂?我的页面设计是将这些友情链接放在网页的底部
    要怎么加代码呢
    或者可以放到一个Panel里
      

  20.   

    1. 简要介绍在VS2005中如何使用CrystalReportViewer和ReportDocument对象模型。
    【解答】
    使用CrystalReportViewer对象模型,首先在VS2005中创建水晶报表文件.rpt,然后通过CrystalReportViewer控件将该报表封装到对象模型中,再利用该对象模型显示报表内容及与报表进行交互。但建议使用CrystalReportViewer控制报表的外观显示形式,不要使用CrystalReportViewer对象直接与报表交互,
        ReportDocument对象模型比CrystalReportViewer功能多、范围广。该对象模型提供了在代码中处理报表的各种能力。在VS2005中创建水晶报表文件.rpt,完成报表设计后,选择主菜单中的【生成】【生成解决方案】,则系统会自动创建一个ReportDocument对象模型,在工具箱中即可以看到自动生成的与报表同名的组件,将该组件拖放到设计窗体后,即得到实例,使用该实例的属性完成对报表结构及报表内部数据的各种控制。
        
    2. 嵌入式水晶报表和非嵌入式水晶报表有什么相同点和不同点?在Windows应用程序中,能否使用非嵌入式水晶报表?
    【解答】
    相同点:都需要创建水晶报表文件.rpt。
    不同点:
    ①嵌入式报表具有与.rpt文件对应的同名包装类,直接通过代码与包装类进行交互,而不是与原始报表文件本身进行交互。非嵌入式报表则单独以.rpt文件形式存在报表,该报表不包含在项目内,也没有对应的报表包装类。
    ②对于嵌入式报表,系统对项目进行编译时,与其他项目资源一样,报表和其包装类都会被自动嵌入到程序集中,用户看不到被包装后的.rpt文件。对于非嵌入式报表,如果是ASP.NET网站,要求该.rpt文件保存在网站根目录下,如果是Windows应用程序则要求分发后.rpt文件保存在和.exe文件相同的目录下。
    ③对于嵌入式报表,如果修改了报表内容,必须重新编译整个项目。非嵌入式报表修改了报表内容,不须重新编译整个项目。

    在Windows应用程序中,可以使用非嵌入式水晶报表。但要求分发后.rpt文件保存在和.exe文件相同的目录下(通过Application.StartPath访问该目录),在解决方案资源管理器中,水晶报表.rpt文件的【生成操作】属性改为“无”,该报表即成为非嵌入式报表,再将【复制到输出目录】属性改为“始终复制”,这样就可以在程序中访问到该文件。
      

  21.   

    1. Web服务器控件和Windows控件的执行有何不同?
    【解答】一般来说,大部分Web服务器控件和Windows控件的功能和使用都很相似,但是二者在内部实现上却有着本质的区别。Windows控件的属性、方法、事件等都是在本机上执行的,而Web服务器控件则全部是在服务器端执行的。2. 利用HiddenField控件是否可用来存储保密数据?为什么?
     【解答】HiddenField控件,即隐藏输入框的服务器控件,可以用于存储非显示的值。在Web应用程序中,可以使用HiddenField控件来存储Web窗体页的状态值。但是,在Web应用程序运行期间,查看源代码会发现该控件是以<input type="hidden" name="HiddenField1" id="HiddenField1" value="3" />的形式呈现给客户端浏览器的,其隐藏值value是用户可见的,所以它不适用于存储需要保密数据。3. SqlDataSource组件的作用是什么?
    【解答】SqlDataSource组件是一种数据源控件,它可以连接到任何ADO.NET支持的数据源(如SQL Server、Oracle等),从中检索数据,并使得其他控件(如GridView等控件)可以绑定到数据源。使用SqlDataSource组件访问数据,只需要提供用于连接到数据库的连接字符串,并定义访问数据的SQL语句或存储过程。在运行时,SqlDataSource组件会自动打开与数据库的连接,执行SQL语句或存储过程,完成数据访问后自动关闭连接。4. 采用GridView控件、DataList控件、DetailsView控件来显示数据各有何特点?
    【解答】GridView控件、DataList控件、DetailsView控件都可以利用SqlDataSource控件绑定SQL数据源自动显示数据。就显示数据的能力来说,GridView控件、DataList控件一次可以显示数据表中的多条记录,而DetailsView控件每次只能显示数据表中的一条记录;就操作数据的能力来说,GridView控件、DetailsView控件都可以自动利用SqlDataSource控件的数据操作命令来编辑所显示的数据,而DataList控件则需要编写自身的相应事件才可以完成编辑数据的操作。5. 使用站点地图进行导航时,SiteMapPath控件与Menu控件有何不同?
    【解答】利用站点地图Web.sitemap进行网站导航时,SiteMapPath控件仅能显示用于在站点地图中列出的页面中显示导航路径,而Menu控件即使使用在站点地图中没有列出的页面中,也可以生成菜单,显示所有的导航数据。6. 判断题
        (1) 从HTML代码来看,所有的Web服务器控件都有“runat="server"”标记。( 对 )
        (2) LinkButton控件与Hyperlink控件的用法和功能完全相同。( 错 )
        (3) CheckBoxList控件中的选项不能同时选中多个。( 错 )
        (4) 若要将Web服务器控件的实例作为Table服务器控件某单元格的内容,则只能使用其Controls属性以编程方式在代码设置。( 对 )
        (5) 所有的数据显示控件都可以利用数据源控件的操作命令来编辑数据。( 错 )
        (6) 在DataList控件中,当单击某个已设置CommandName属性值,但在代码中没有对应事件的按钮控件,都将会触发ItemCommand事件。( 对 )
        (7) 验证控件与被验证的输入控件是一一对应的。( 错 )
        (8) RangeValidator控件对空输入也能验证。( 对 )
        (9) 使用Menu服务器控件可以生成静态菜单、动态菜单以及部分动态菜单三种类型。( 错 )
        7. 填空题
        (1) 若希望每次修改TextBox服务器控件文本内容后都能立刻被服务器处理,则应将(AutoPostBack)属性值更改为true。
        (2) 若不采用任何容器控件,要将页面中的若干个RadioButton服务器控件分为两组进行单选,则应该设置的属性是(GroupName)。
        (3) SqlDataSource组件的数据操作命令可以是单条SQL语句,也可以是(存储过程 )。
        (4) SqlDataSource组件的DataSourceMode属性值为(DataSet)时,才可以使用筛选功能。
        (5) 若要在GridView控件中添加编辑命令按钮,则需添加(CommandField)类型的列字段,或将属性(AutoGenerateEditButton)的属性值设置为true。
        (6) (RequiredFieldValidator)控件用于验证用户是否进行了有效的输入。
        (7) CompareValidator控件经常用于(验证两个控件输入值的大小关系)、验证一个控件输入值与某个常数值的大小关系和(确定一个控件中的输入值是否可以转换到特定的数据类型)。
        (8) 站点地图就是一个用于描述站点逻辑结构的(XML文件),一般以Web.sitemap文件的形式保存在Web应用程序的根目录下,以辅助导航控件完成站点导航。
      

  22.   

    谢谢jingang123gz的学习资料
    我一定好好学习
      

  23.   

    XIEWH(痛苦啊~~) 
    真是抱歉了
    这个论坛我才玩哦,今天才看到怎么结贴,发给你的分数收到了吗?