【发布时间】:2018-10-18 01:54:49
【问题描述】:
作为标题 我有一些关于在 RowDataBound 中添加 HyperLink 和 Highlight 关键字的代码。 它在页面更改时工作,除了停留在同一页面(单击 searchbtn)。 条件是 HyperLink 将消失,但突出显示正常工作。 我尝试在 Rowcreated() 中写入,如果这样做,不仅超链接而且内容都会消失。我该如何解决这个问题?谢谢。
这里有一些代码
protected override void LoadViewState(object savedState)
{
if (savedState != null)
{
object[] myState = (object[])savedState;
if (myState[0] != null)
{
base.LoadViewState(myState[0]);
}
if (myState[1] != null)
{
SqlDataSource1.SelectCommand = Convert.ToString(myState[1]);
}
}
}
protected override object SaveViewState()
{
object baseSate = base.SaveViewState();
object[] myState = new object[2];
myState[0] = baseSate;
myState[1] = SqlDataSource1.SelectCommand;
return myState;
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string[] keywords = tbKeyWords.Text.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
this.keywords = keywords.ToList();
switch (DocRange.SelectedItem.Value)
{
case "all":
foreach (string item in this.keywords)
{
e.Row.Cells[1].Text = e.Row.Cells[1].Text.Replace(item, "<span style='background:#FF0;'>" + item + "</span>");
e.Row.Cells[2].Text = e.Row.Cells[2].Text.Replace(item, "<span style='background:#FF0;'>" + item + "</span>");
}
break;
case "parsecontent":
foreach (string item in this.keywords)
{
e.Row.Cells[2].Text = e.Row.Cells[2].Text.Replace(item, "<span style='background:#FF0;'>" + item + "</span>");
}
break;
case "filename":
foreach (string item in this.keywords)
{
e.Row.Cells[1].Text = e.Row.Cells[1].Text.Replace(item, "<span style='background:#FF0;'>" + item + "</span>");
}
break;
}
HyperLink Hyper = new HyperLink();
Hyper.Text = e.Row.Cells[1].Text;
Hyper.NavigateUrl = "" + e.Row.Cells[1].Text;
e.Row.Cells[1].Controls.Add(Hyper);
}
}
【问题讨论】:
-
欢迎来到stackoverflow。如果您发布一个可重现的最小示例,以便其他用户可以试验您的代码,您更有可能获得有用的答案。
-
你会展示你的代码吗?所以,对其他人的建议会有所帮助。
标签: c# asp.net gridview rowdatabound