2016-07-11 11 views
0

グリッドビューのセルからテキストを生成するボタンがクリックされています。しかし、テキストを取得するときにhrefタグを削除したいと思います。どうしたらいいですか? .atrributes.remove( "HREF)をやろうとしているが、それはArrayListに保存することができませんgridviewセルから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) 
      { 
       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> 
+0

をあなたはそれで '.attributes.remove()'ラインでコードを投稿することができますので、我々は完全な例を見ることができますあなたが試したことの結果、そしてあなたが得ている結果は? – Katstevens

+0

コードを更新しました –

+0

TemplateFieldsまたはプレーンBoundFieldで実際のコントロールを使用しているかどうかはわからないので、aspxコードも表示する必要があります。 –

答えて

0

それはしばらくしています私は、Webフォームを使用して、最後だったとGridViewが、私の目にはあなたはCellオブジェクト自体(.Cells[2])に.Attributes.Remove()を呼び出しているかのように見えます。しかし、私はアンカータグがセル内部のだと思っているだろう?

ので、同様の

var Anchor = s.Cells[2].FindControl("TheAnchor") as AnchorTag; 

Anchor.Attributes.Remove("href"); 

Response.Write("<script>alert('" + Anchor.Text + "');</script>"); 

か何か:10

はそれがより多くのこのような(擬似コードを言い訳)ではないでしょうか?

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>"); 
     } 
    } 
} 
関連する問題