在datagrid中有一列ButtonColumn并帮定了数据,可以点击CommandName="Select",我想使帮定的数据如果小于0写前面加“a”如果大于0什么也不加。怎样实现?急!原始代码如下:<asp:ButtonColumn DataTextField="ITEM_ID" SortExpression="ITEM_ID" HeaderText="ID
CommandName="Select">
<ItemStyle Wrap="False" HorizontalAlign="Center"></ItemStyle>
</asp:ButtonColumn>

解决方案 »

  1.   

    两种方法,一种在sql语句中
    select case when a>0 then cast(a as varchar) else '0'+ cast(a as varchar) as a
    ....
    另一种在代码中数据绑定前做处理
    你应该这么写的把
    sqldatareader dr=....
    buttonid.datatextfield=dr[0].tostring()
    修改成 
    buttonid.datatextfield=dr[0].tostring("0:D1")
      

  2.   

    在ItemDataBound事件中处理,不过你这个是ButtonColumn,找控件比较麻烦,如果是模版列容易的多
      

  3.   

    还有可以 N 种方法,
    比如,模版列法<asp:templateColumn>
    <itemtemplate>
    <asp:Button Text='<% ((int)Eval("ITEM_ID") > 0 ? "" : "a") + Eval("ITEM_ID")  %>' CommandName="Select" />
    ....
      

  4.   

    忽然发现,使用模版列, 排序, SortExpression="ITEM_ID" 也就搞不定了,还是到 ItemDataBound 中处理吧