2017-03-14 20 views
1

我有一个gridview复选框在第一列,我需要得到所选行的行部分的html。什么是做这件事的好方法?如何获取Gridview中选定行的HTML部分?

下面的部分逻辑需​​要获得选定的行html。

foreach (GridViewRow row in GridView1.Rows) 
{ 
    if (!(row.FindControl("CheckBox1") as CheckBox).Checked) 
    { 
     //logic required here 
    } 
} 
+1

你是什么意思的HTML部分? – VDWWD

+0

行的Html值,如 ... –

+0

请问为什么你应该需要,如果复选框没有选中?如果你详细说明你打算如何使用它,我们可能会提供一个不同的解决方案。 – VDWWD

回答

3

您可以使用此片段在GridView OnRowDataBound事件中以HTML格式获取该行。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     CheckBox cb = e.Row.FindControl("CheckBox1") as CheckBox; 

     if (cb.Checked == true) 
     { 
      TableRow row = e.Row; 

      StringWriter sw = new StringWriter(); 
      HtmlTextWriter htw = new HtmlTextWriter(sw); 
      row.RenderControl(htw); 

      string rowContents = sw.ToString(); 
     } 
    } 
} 
+0

这确实得到了像我一直在寻找的行的html竞争,但我也必须获得标题值。你有什么线索在这种情况下如何获得gridview的标题部分? –

+1

是的,你可以使用'DataControlRowType.Header'来检查这行是否是标题行,如果是这样,就和上面代码片段中复选框被选中时一样。 – VDWWD

+0

是的,这也有帮助,但我在开始之前使用了GridviewName.HeaderRow.RenderControl(htw)。谢谢您的帮助 –

相关问题