你好我的問題是我有一個名爲TweetText的Grid視圖中的Column,它總是有一個Url。我想讓URl成爲可點擊的鏈接。我設法在頁面加載時做到這一點。但是,當我更改網格的頁碼時,TweetText的文本保持不變,即不變。在這裏寫我的代碼。我也在GridView1_PageIndexChanged上執行此代碼。但沒有任何幫助。還有一件事是我不想讓整個專欄有一個鏈接。我只想讓網址在列作爲鏈接將文本轉換爲gridview中的鏈接asp.net
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;
}
提供網格標記和你是如何得到這個網址???它是否有一些數據源列條目? –
將該顏色設置爲模板列,併爲其添加一個。在RowDataBound中找到一個標籤並設置它的src(src表示它應該重定向的位置) – kbvishnu
還有一件事是我不想讓整個列都有鏈接。我只想將列中的Url作爲鏈接 –