私のグリッドは 5 列で、「イベント」列の後に Q1 から Q4 が続きます。四半期の列の 1 つはいつでも編集可能で、他の 3 つはラベルです。表示するものを決定するために使用するコードは次のとおりです (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>
このコードはすべて正常に動作します。問題は、 1 つの行を変更して常にラベルを表示したい場合です。私も試し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 などを使用できないというエラーが表示されます。
ご協力ありがとうございました。