none
怎样在ASP.net页面中的多个Hyperlink循环赋值? RRS feed

答案

  • 固定了啊?那就先声明一个数组,把页面上的超链接都放进去不就行了?
    HyperLink[] links = new HyperLink[]{HyperLink1, HyperLink2, HyperLink3}
    然后在你的循环里面就可以用 links[i]来引用了


    理解的越多,需要记忆的就越少
    2009年4月7日 14:31
    版主
  • HyperLink a = this.form1.FindControl(" HyperLink " + i.ToString()) ;
    a
    .Text = ds.Tables[0].Rows[0]["headline"].ToString();
    a .NavigateUrl = "../InfoDecalre/News/News_inquirePage.aspx?新闻ID=" + newsid1;

    注意:HyperLink1都需要是form1 的子节点,否则,请用容器对象的FindControl

    孟宪会
    2009年4月8日 2:28
    版主

全部回复

  • 楼主能把意思说的更明确一点吗?具体是什么场景?

    理解的越多,需要记忆的就越少
    2009年4月7日 13:27
    版主
  • 就是页面中有多个Hyperlink,Hyperlink1,Hyperlink2,Hyperlink3.。。从dataset中读取值
     string str = "select top 3 news_ID,headline from newsadd order by release_time desc";
                    SqlCommand cmd = new SqlCommand(str, con);
                    cmd.ExecuteNonQuery();
                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    da.Fill(ds, "newsadd");
     if (ds != null && ds.Tables[0].Rows.Count != 0)
                    {
                        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                        {
                            if (ds.Tables[0].Rows[i]["news_ID"] != null && ds.Tables[0].Rows[i]["headline"]!=null)
                            {
                                string newsid = ds.Tables[0].Rows[i]["news_ID"].ToString();
                                HyperLink1.Text = ds.Tables[0].Rows[0]["headline"].ToString();
                                HyperLink1.NavigateUrl = "../InfoDecalre/News/News_inquirePage.aspx?新闻ID=" + newsid1;
    }
    }
    就是将加粗的Hyperlink变成,Hyperlink{i},不知道怎样实现,谢谢啊

    2009年4月7日 13:54
  • 就是页面中有多个Hyperlink,Hyperlink1,Hyperlink2,Hyperlink3.。。从dataset中读取值
     string str = "select top 3 news_ID,headline from newsadd order by release_time desc";
                    SqlCommand cmd = new SqlCommand(str, con);
                    cmd.ExecuteNonQuery();
                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    da.Fill(ds, "newsadd");
     if (ds != null && ds.Tables[0].Rows.Count != 0)
                    {
                        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                        {
                            if (ds.Tables[0].Rows[i]["news_ID"] != null && ds.Tables[0].Rows[i]["headline"]!=null)
                            {
                                string newsid = ds.Tables[0].Rows[i]["news_ID"].ToString();
                                HyperLink1.Text = ds.Tables[0].Rows[0]["headline"].ToString();
                                HyperLink1.NavigateUrl = "../InfoDecalre/News/News_inquirePage.aspx?新闻ID=" + newsid1;
    }
    }
    就是将加粗的Hyperlink1变成,Hyperlink{i},不知道怎样实现,谢谢啊

    2009年4月7日 13:56
  • 这样的话,楼主可能需要动态添加控件了:

    HyperLink link;
    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                        {
                            if (ds.Tables[0].Rows[i]["news_ID"] != null && ds.Tables[0].Rows[i]["headline"]!=null)
                            {
                                string newsid = ds.Tables[0].Rows[i]["news_ID"].ToString();
    link = new HyperLink();
    link.Text = ds.Tables[0].Rows[0]["headline"].ToString();
    link..NavigateUrl = "../InfoDecalre/News/News_inquirePage.aspx?新闻ID=" + newsid1;
                               this.Controls.Add(link);
    }

    }


    理解的越多,需要记忆的就越少
    2009年4月7日 14:05
    版主
  • 呵呵,Hyperlink已经在前台固定了,不能用动态控件,
    2009年4月7日 14:26
  • 谢谢啊,麻烦您了
    2009年4月7日 14:27
  • 固定了啊?那就先声明一个数组,把页面上的超链接都放进去不就行了?
    HyperLink[] links = new HyperLink[]{HyperLink1, HyperLink2, HyperLink3}
    然后在你的循环里面就可以用 links[i]来引用了


    理解的越多,需要记忆的就越少
    2009年4月7日 14:31
    版主
  • 恩,谢谢啊,麻烦您了,
    2009年4月7日 14:37
  • HyperLink a = this.form1.FindControl(" HyperLink " + i.ToString()) ;
    a
    .Text = ds.Tables[0].Rows[0]["headline"].ToString();
    a .NavigateUrl = "../InfoDecalre/News/News_inquirePage.aspx?新闻ID=" + newsid1;

    注意:HyperLink1都需要是form1 的子节点,否则,请用容器对象的FindControl

    孟宪会
    2009年4月8日 2:28
    版主
  • 谢谢,麻烦了

    2009年4月8日 2:30