我在GridView的模板列中添加了一个LinkBotton控件,在页面加载的时候我查询数据库,如果数据库中的值为空,则设置LinkBotton.Text的值是“回复”,如果数据库中的值不为空,则设置LinkBotton.Text为“已回复”。这怎么实现?

解决方案 »

  1.   

    <asp:TemplateField>
                        <ItemTemplate>
                       
                           <asp:LinkButton ID="lk1" runat="server"
                            Text='<%#Eval("字段").ToString()==""?"回复":"已回复" %>'
                           ></asp:LinkButton>                    </ItemTemplate>
                    </asp:TemplateField>
      

  2.   

     首先有这样一个类
    /// <summary>
    /// 将服务器控件转换为Html输出
    /// </summary>
    /// <param name="getControl">控件对象</param>
    /// <returns></returns>
    public string RenderControlService(Control getControl)
    {
         StringWriter sw = new StringWriter();
         HtmlTextWriter write = new HtmlTextWriter(sw);
         getControl.RenderControl(write);
         string str_Service = sw.ToString();
         write.Close();
         sw.Close();
         return str_Service.Replace("&lt;", "<").Replace("&quot;", "\"").Replace("&gt;", ">");
    }然后定义一个LinkButton
    LinkButton myLinkButton = new LinkButton();
    if (e.Row.Cells[1].Text == "1")
    {
        myLinkButton.Text = "已回复";
    }
    else
    {
        myLinkButton.Text = "回复";
    }e.Row.Cells[1].Text = RenderControlHtml(myLinkButton);这里的myLinkButton你可以像自己在页面里面定义一样使用
      

  3.   

    用GridView的RowDataBound事件.if (e.Row.RowType == ....DataRow)
    {
        DataRow dr = (DataRow)e.Row.DataItem;
        LinkBotton lbtn = (LinkButton)e.Row.FindControl('lbtn'); 
        if (dr["xxx"] != null && dr["xxx"].ToString() != "")
        {
             lbtn.Text = "回复";
        }
        else
        {
             lbtn.Text = "已回复";
        }
    }