none
GridView的ItemTemplate中<%Eval()%>绑时如何加入对需要邦定的数据的判断? RRS feed

  • 问题

  • GridView的ItemTemplate中<%Eval()%>绑时如何加入对半定速据的判断?

    我常使用以下代码来进行速据判断:

    <asp:Label ID="lblType" runat="server" Text='<%# Eval("flag").ToString()=="1" ? "订单" + Eval("flag").ToString()" : "咨询" + Eval("flag").ToString()" %>'></asp:Label>

    但是提示报错,环境是vs2010

    2012年9月26日 6:22

答案

  • 你就是一个label控件 有做其他的服务器相关的操作吗?

    如果没有那就直接去掉label服务器控件 用一个html的label代替 需要考虑是否 Eval("flag") 是否有null的情况

    <label><%# Eval("flag").ToString()=="1" ? "订单" + Eval("flag").ToString() : "咨询" + Eval("flag").ToString() %></label>


    爱吃西瓜的小强[mct、mcpd]

    2012年9月26日 8:14

全部回复

  • 你就是一个label控件 有做其他的服务器相关的操作吗?

    如果没有那就直接去掉label服务器控件 用一个html的label代替 需要考虑是否 Eval("flag") 是否有null的情况

    <label><%# Eval("flag").ToString()=="1" ? "订单" + Eval("flag").ToString() : "咨询" + Eval("flag").ToString() %></label>


    爱吃西瓜的小强[mct、mcpd]

    2012年9月26日 8:14
  • 你的方法我测试过好像不行我的代码如下:

     <asp:GridView ID="TrackingCode" runat="server" AllowPaging="True" AllowSorting="True"
                DataSourceID="SqlDataSource1" Width="671px" AutoGenerateColumns="False"
                BackColor="White" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px"
                CellPadding="3" ForeColor="Black" GridLines="Vertical" PageSize="5">
                <FooterStyle BackColor="#CCCCCC" />
                <Columns>
                    <asp:CommandField ShowSelectButton="True" />
                    <asp:BoundField DataField="SCCode" HeaderText="OrderCode" SortExpression="SCCode" />
                    <asp:BoundField DataField="AFCode" HeaderText="TrackingCode" SortExpression="AFCode" />
                    <asp:TemplateField HeaderText="PrintDateTime" SortExpression="SCCode">
                        <EditItemTemplate>
                            <asp:TextBox ID="PrintDateTime" runat="server" Text='<%# Bind("SCCode") %>'></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="PrintDateTime" runat="server" Text='<%# Eval("SCCode").ToString().Substring(0,8) %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="OrderNo" SortExpression="AFCode">
                        <EditItemTemplate>
                            <asp:TextBox ID="OrderNo" runat="server" Text='<%# Bind("SCCode") %>'></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <%-- Text= ' <%#   Eval( "Title ").ToString()== " "   ?   "空 "   :   Eval( "Title ")   %> ' --%>
                            <asp:Label ID="OrderNo" runat="server" Text='<%# "订单" + Eval("SCCode").ToString().Substring(16,5) %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
                <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
                <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
                <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
                <AlternatingRowStyle BackColor="#CCCCCC" />
            </asp:GridView>

    我需要定义的label(用下划线标记了)是在gridview控件下的,我是希望能不能对这个label的获取值的时候做判断的,希望指教。


    2012年9月26日 9:33
  • <%# Eval("SCCode").ToString().Length > 9 ? Eval("SCCode").ToString().Substring(0,8) : Eval("SCCode").ToString() %>
    
    先判断一下,字符串的长度,然后在截取子串。

    2012年9月27日 7:19