私のフォームの 1 つで RadGrid を使用して、C# で Web サイトを開発しています。以下は、RadGrid の ASPX コードです。
<telerik:RadGrid ID="GridViewAllocation" runat="server" Height="200px" Width="100%"
AutoGenerateColumns="False" GridLines="None"
OnItemDataBound="GridViewAllocation_ItemDataBound"
OnItemCommand="GridViewAllocation_ItemCommand">
<MasterTableView>
<Columns>
<telerik:GridBoundColumn HeaderText="Amount O/S" UniqueName="AMT" DataField="AMT">
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn HeaderText="Allocate" UniqueName="Acc_Allocated"
DataField="Acc_Allocated">
<ItemTemplate>
<telerik:RadNumericTextBox ID="TextGirdAmntAlloc" runat="server" Value="0"
CssClass="gridTextEntry" OnTextChanged="TextGirdAmntAlloc_TextChanged"
AutoPostBack="true">
<NumberFormat GroupSeparator="" DecimalDigits="4" />
</telerik:RadNumericTextBox>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn UniqueName="ACC_SOURCE" DataField="ACC_SOURCE" Visible="false">
</telerik:GridBoundColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
このグリッドでは、列AMTの正確な値をテキストボックスAcc_Allocatedをクリックしたり、KeyPress またはその他のイベントで転送したいと考えています。値を転送するための 1 つの条件があります。Acc_Source値が「3」の場合はその値を転送し、それ以外の場合は転送しません。現在、TextChanged イベントを介してサーバー側からチェックしています。
これを行う他の方法はありますか?
ここに私の TextChanged イベントがあります:
protected void TextGirdAmntAlloc_TextChanged(object sender, EventArgs e)
{
try
{
foreach (GridDataItem GrdItm in GridViewAllocation.MasterTableView.Items)
{
decimal GrdAccAllocAmnt = Convert.ToDecimal(((RadNumericTextBox)GrdItm.FindContro("TextGirdAmntAlloc")).Text);
if (GrdItm["ACC_SOURCE"].Text == "3")
{
LblAmnt_Alloc.Text = GrdItm.Cells[4].Text;
((RadNumericTextBox)GrdItm.FindControl("TextGirdAmntAlloc")).Text = GrdItm.Cells[4].Text;
}
}
}
catch { }
}