代码之家  ›  专栏  ›  技术社区  ›  Phillip Copley

从小区3访问Telerik RadGrid中的小区1(未绑定数据)

  •  1
  • Phillip Copley  · 技术社区  · 12 年前

    我的网格是5列,一列是“事件”,后面是Q1到Q4。其中一个四分之一列在任何给定时间都是可编辑的,其他三个列是标签。以下是我用来确定显示哪个的代码(q在其他地方定义):

    <telerik:GridTemplateColumn HeaderText="Q2" DataField="Q2" UniqueName="Q2">
        <ItemTemplate>
            <% If (q = 3) Then%>
                <telerik:RadNumericTextBox ID="rntb_Q2" runat="server" Type="Number" ShowSpinButtons="true" Value='<%# CInt(Eval("Q2")) %>' Width="50px" CssClass="short" MinValue="0">
                    <IncrementSettings InterceptArrowKeys="false" InterceptMouseWheel="false" Step="1" />
                    <NumberFormat DecimalDigits="0" GroupSeparator="," />
                </telerik:RadNumericTextBox>
            <% Else%>
                <asp:Label ID="lbl_Q2" runat="server" Text='<%# If(Eval("Q2") Is Nothing, "0", Eval("Q2")) %>'></asp:Label>
            <% End If %>
        </ItemTemplate>
    </telerik:GridTemplateColumn>
    

    这个代码运行良好;问题是当我想改变的时候 一排 以始终显示标签。我试过了 If ((q = 3) AndAlso (Not GetDataItem("EventDesc").ToString.ToLower = "total error doses")) 以及 If ((q = 3) AndAlso (Not Eval("EventDesc").ToString.ToLower = "total error doses")) 但在这两种情况下,我都收到了一个错误,即无法在数据绑定之外使用Eval等。

    谢谢你的帮助。

    1 回复  |  直到 12 年前
        1
  •  0
  •   Phillip Copley    12 年前

    所以我想做的是改变是否显示RadNumericTextBox或Label。这在不直接访问另一个单元格的内容的情况下实现了结果。它使用.ItemIndex属性来确定哪些控件应该可见。

    <telerik:GridTemplateColumn HeaderText="Q2" DataField="Q2" UniqueName="Q2">
        <ItemTemplate>
            <% If (q = 3) Then %>
                <telerik:RadNumericTextBox ID="rntb_Q2c" runat="server" Type="Number" ShowSpinButtons="true" Value='<%# Eval("Q2") %>' Width="75px" CssClass="short" Visible='<%#If(TryCast(Container, GridDataItem).ItemIndex < 9, True, False) %>'>
                    <IncrementSettings InterceptArrowKeys="false" InterceptMouseWheel="false" Step="1" />
                    <NumberFormat DecimalDigits="0" GroupSeparator="" />
                </telerik:RadNumericTextBox>
                <asp:Label ID="lbl_Q22" runat="server" Text='<%# Eval("Q2") %>' Visible='<%#If(TryCast(Container, GridDataItem).ItemIndex < 9, False, True) %>'></asp:Label>
            <% Else %>
                <asp:Label ID="lbl_Q2" runat="server" Text='<%# If(Eval("Q2") Is Nothing, "0", Eval("Q2")) %>'></asp:Label>
            <% End If %>
        </ItemTemplate>
    </telerik:GridTemplateColumn>