zoukankan      html  css  js  c++  java
  • 给datagrid模板页里面的控件动态赋值

         前两天做东西:需要把前台的文本编辑器里面的内容存到数据库然后取到后台做处理,问题是从文本编辑器存的数据都带有html标签(我们不能把这些标签给管理员看吧) 所以要处理一下。
       首先我是直接的用datagrid绑定,绑定上去了html标签依然显示(很是奇怪以前也这么干过似乎是默认的就给换成的对应的格式了),看看直接绑定 <asp:BoundColumn DataField="cqcontent" HeaderText="内容"/>  里面没有找到html转码的属性(一句话直接的用<asp:BoundColumn/>无法解决 )。
          想到用datalist可以在绑定字段的时候用HttpUtility.HtmlDecode()处理掉,但是无法达到其他的功能。
      没法最后只得datagrid模板页里面放个lable控件然后动态的给其其赋值。
     <asp:DataGrid id="dgContent" runat="server"> 
    <Columns>
    <asp:TemplateColumn HeaderText="内容">
                                                <ItemTemplate>
                                                <asp:Label ID="LabCqComment" runat="server" width="100%"></asp:Label>
                                                </ItemTemplate>
                                                </asp:TemplateColumn>

     </Columns>
                                        </asp:DataGrid>

                                                   
    直接在对应的cs文件中声明一个protectd 的string变量然后写到lable中间去 html标签没了,但每次绑定的都是以个值,看看数据库,值都是最后一行。看来还是没有动态的绑定上去。

         那就继续改吧,我们需要找到每个lable然后把对应的值给绑定上去。这样我们就必须先找到这个lable控件,用this.DGQcomment.Items[i].FindControl("LabCqComment")找到了,可是它是个Control对象,没用我们习惯的Text属性(需要强制转换为lable)。

    实现代码如下:

     protected void DGQcomment_ItemDataBound(object sender, DataGridItemEventArgs e)
        {
            qcomment.Qid = Int32.Parse(Request.QueryString["QId"].ToString());
            DataTable dt = QCommentCtr.Qcomment_GetQcommentByqid(qcomment);
            if (dt != null && dt.Rows.Count != 0)
            {
                for (int i = 0; i < this.DGQcomment.Items.Count; i++)
                {
                    ((Label)this.DGQcomment.Items[i].FindControl     ("LabCqComment")).Text=HttpUtility.HtmlDecode(dt.Rows[i]["cqcontent"].ToString());
                }
            }

        }


    我要的结果就出来了



  • 相关阅读:
    oracle 导入数据时提示只有 DBA 才能导入由其他 DBA 导出的文件
    oracle 常用语句
    android udp 无法收到数据 (模拟器中)
    android DatagramSocket send 发送数据出错
    AtCoder ABC 128E Roadwork
    AtCoder ABC 128D equeue
    AtCoder ABC 127F Absolute Minima
    AtCoder ABC 127E Cell Distance
    CodeForces 1166E The LCMs Must be Large
    CodeForces 1166D Cute Sequences
  • 原文地址:https://www.cnblogs.com/zmxmiss/p/1227971.html
Copyright © 2011-2022 走看看