你好我的问题是我在网格视图中有一个名为 TweetText 的列,它总是有一个 Url。我想将该 URl 设置为可点击的链接。我设法在页面加载时做到了这一点。但是当我更改网格的页码时,TweetText 的文本保持不变,即不变。在这里写我的代码。我也在 GridView1_PageIndexChanged 上执行此代码。但没有任何帮助。还有一件事是我不想让整个专栏都有一个链接。我只想将列中的 URL 作为链接
if (!Page.IsPostBack)
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
GridViewRow row = GridView1.Rows[i];
String Url = SmartyPlants.Classes.TwitterData.GetUrlStrings(row.Cells[5].Text);
bool Check = SmartyPlants.Classes.TwitterData.IsUrlValid(Url);
int Index = Url.IndexOf(" ");
if (Url.Contains(" "))
{
Url = Url.Remove(Index);
}
String link = MakeLink(Url);
row.Cells[5].Text = row.Cells[5].Text.Replace(Url, link);
}
}
public static string MakeLink(string txt)
{
Regex regx = new Regex("http://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?", RegexOptions.IgnoreCase);
MatchCollection mactches = regx.Matches(txt);
foreach (Match match in mactches)
{
txt = txt.Replace(match.Value, "<a href='" + match.Value + "'>" + match.Value + "</a>");
}
public static bool IsUrlValid(string url)
{
return Regex.IsMatch(url, @"(http|https)://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?");
}
public static string GetUrlStrings(string text)
{
MatchCollection ms = Regex.Matches(text, @"(www.+|http.+)([\s]|$)");
string testMatch = ms[0].Value.ToString();
return testMatch;
}
return txt;
}