В качестве заголовка у меня есть код для добавления ключевых слов HyperLink и Highlight в RowDataBound.Это работает, когда страница изменяется, за исключением того, что остается на той же странице (нажмите 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);
}
}