【问题标题】:Asp.net GridView BoundColumn FormatAsp.net GridView BoundColumn 格式
【发布时间】:2011-04-15 18:01:25
【问题描述】:

HTML代码:

<asp:DataGrid ID="myGrid">
 <Columns>
    <asp:BoundColumn DataField="CustomerName" HeaderText="Customer">
       <ItemStyle Font-Bold="True" />
    </asp:BoundColumn>
 </Columns>
</asp:DataGrid>

代码背后:

public string TestFunction(string str)
{
    return str.replace("A","B");
}

如何调用 TestFunction ? DataField="TestFunction(CustomerName)"

最好的问候...

【问题讨论】:

    标签: asp.net datagrid


    【解决方案1】:

    您需要在 TemplateColumn 中执行此操作:

    <asp:DataGrid ID="myGrid">
     <Columns>
        <TemplateColumn>
            <ItemTemplate>
                <%# TestFunction(Eval("CustomerName") as string) %>
            </ItemTemplate>
        </TemplateColumn>
     </Columns>
    </asp:DataGrid>
    

    然而,这意味着您将失去自动排序和编辑 - 但无论如何谁会使用它:)

    【讨论】:

    • 如果您绑定到 DataView 并创建了适当的 EditItemTemplate,则不应丢失自动排序和编辑。
    • 我想制作 BoundColumn 吗?我做吗?
    • @Oraclee 如果你想把它放在一个 BoundColumn 你必须将它作为一个属性添加到你的数据源 @Joel Etherton EditItemTemplate => true,但是排序不会工作 IIRC
    【解决方案2】:
    DataField='<%# TestFunction((string)Eval("MasterDesc")) %>'
    

    更新:

    http://forums.asp.net/t/996979.aspx

    【讨论】:

    • = 只有具有 DataBinding 事件的对象才支持数据绑定表达式。 System.Web.UI.WebControls.BoundColumn 没有 DataBinding 事件
    • 是的,每个 veggerby,您需要将它放在模板中吗?
    猜你喜欢
    • 2014-07-26
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 2010-09-11
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多