当前位置:编程学习 > C#/ASP.NET >>

Asp.net中如何从数据库某字段的数据中查找筛选出图片<img>标记,并使图片显示在网页上?

Asp.net中如何从数据库某字段中查找筛选出图片<img>标记,并让图片显示在网页上。打个比方说明下:比如现在我有一数据表,表中有一字段"content",类型 varchar,该字段是用来放新闻内容的(内容数据中包含图片代码),现在的问题就是在asp.net中如何在该字段的一大堆杂乱的数据中,把含的图片代码(即:含如<img src="***">的标记代码)给提取出来,并且在前台用控件绑定,实现这些图片的显示。
大致情况就是这样的,请高手指教哈。请附上代码说明。谢谢了~~~~

相关代码说明如下:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Text.RegularExpressions;

public partial class Default3 : System.Web.UI.Page
{
    public string HTMLStr;
    public string str;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Binder(); 
            GetImgUrl(HTMLStr);         
        }   
    }
    private void Binder()
    {
        SqlConnection conn = DB.createConn();
        conn.Open();
        SqlDataAdapter sda = new SqlDataAdapter("select * from TABLE111 order by ID asc",conn);
        DataSet ds = new DataSet();
        sda.Fill(ds, "table111");
        DataList1.DataSource = ds;
        DataList1.DataKeyField = "ID";
        DataList1.DataBind();
        HTMLStr = ds.Tables["table111"].Columns["content"].ToString();
        conn.Close();
    }
    public static string GetImgUrl(string HTMLStr)
    {   
        string str = string.Empty;
        Regex r = new Regex(@"<img\s+[^>]*\s*src\s*=\s*([']?)(?<url>\S+)'?[^>]*>",RegexOptions.Compiled);
        Match m = r.Match(HTMLStr.ToLower());
        if (m.Success)
            str = m.Result("${url}");
        return str;
    }
} --------------------编程问答-------------------- 按楼主的方法应该可以啊,用正则把图片的标识读出来放到一个List<>内进行绑定,不过我没试试,也看看其他人的方法 --------------------编程问答-------------------- 正则获取图片。
string str="";
Regex reg = new Regex(@"(?i)<img\b[^>]*?src=(['""]?)([^'""\s>]+)\1[^>]*>");
MatchCollection mc = reg.Matches(str);
foreach (Match m in mc)
{
    Console.Write(m.Groups[2].Value);
} --------------------编程问答-------------------- 我现在还有的问题是。在前台怎么让这些筛选出来的图片显示出来呢。
前台我只用了一个DataList控件。
相关代码如下:

<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:DataList ID="DataList1" runat="server" RepeatColumns="4">
            <ItemTemplate>

                //注意:这个地方就是我的问题,就是怎么样让那些查找筛选出来的图片显示出来。代码页有个GetImgUrl()方法,是带参数的。我的思想是这样的,怎样传参才能让图片显示。有一点肯定的是,这个参数肯定是数据表的那个"content"字段的一堆杂乱数据。 问题是我不知道具体怎么传的,在前台要怎么写。请指教!!!

            </ItemTemplate>
        </asp:DataList>
    
    </div>
    </form>
</body>
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,