如何从gridview单元格中删除href?

时间:2016-07-11 08:33:38

标签: c# asp.net gridview

我有一个按钮单击,将从gridview单元格生成文本。但我想在获取文本时删除href标记。我该怎么做?试图做.atrributes.remove(“href”但无法将其保存到arraylist

protected void Button_Example_Click(object sender, EventArgs e)
    {

        foreach (GridViewRow s in GridView_Staff.Rows)
        {
            CheckBox CheckBox_Staff = (s.FindControl("CheckBox_Staff") as CheckBox);
            if (CheckBox_Staff.Checked == true)
            {
                s.Cells[2].Attributes.Remove("href");
                Response.Write("<script>alert('" + s.Cells[2].Text + "');</script>");
            }
        }


    }

s.Cells [2] .Text包含:

<a href="example.com">Example A</a>

2 个答案:

答案 0 :(得分:0)

自从我上次使用网络表单和GridView以来已经有一段时间了,但在我看来,好像你在.Attributes.Remove()对象本身上调用Cell({{1} })。但是我会认为锚标记是里面的单元格吗?

它不会更像这样(原谅伪代码):

.Cells[2]

或类似的东西?

答案 1 :(得分:0)

您可以使用正则表达式删除href属性,如下所示:

protected void Button_Example_Click(object sender, EventArgs e)
{
    foreach (GridViewRow s in GridView_Staff.Rows)
    {
        CheckBox CheckBox_Staff = (s.FindControl("CheckBox_Staff") as CheckBox);
        if (CheckBox_Staff.Checked == true)
        {
            string text = s.Cells[2].Text;
            string pattern =  @"(?<=<[^<>]+)\s+(?:href)\s*=\s*([""']).*?\1";

            text = System.Text.RegularExpressions.Regex.Replace(text, pattern, "", RegexOptions.IgnoreCase);
            s.Cells[2].Text = text;

            Response.Write("<script>alert('" + s.Cells[2].Text + "');</script>");
        }
    }
}