Merhaba.
Grid üzerinden giriş yapılması gereken durumlarda, grid üzerinde RadNumericText box gibi kontroller kullandığımızda, sayfanın boyutu – script yükü - ister istemez artıyor. Bu artış sayfanın yüklenmesini geciktiriyor. RadInputManager tanımlayarak, RadNumericText yerine nispeten hafif bir kontrol olan bildiğimiz Asp:TextBox kullanıp, çalışma zamanında Numerik Text Box’ın ilgili özellik (ayarlarını) asp:text box’a atıyoruz.
Benim çalıştığım örnekte sayfanın boyutu %35 oranında azaldı, sayfanın yüklenme süresi ise gözle görülür şekilde hızlandı.
İlgili Makale
Örnek Kullanım (TFS Changeset 120038)
Eski Hali
<telerik:GridTemplateColumn UniqueName="TutarBunyeColumn" SortExpression="TutarBunye" HeaderText="<%$ Resources:SabitVeri, ItemBunyedeKalacak %>">
<ItemTemplate>
<telerik:RadNumericTextBox ID="TutarBunyeTextBox" runat="server"
EmptyMessage="<%$ Resources:SabitVeri, ItemBunyedeKalacak %>"
DbValue='<%# ((System.Data.DataRowView)Container.DataItem)["TutarBunye"] %>' Type="Number" MaxLength="13" Width="50px" >
<NumberFormat AllowRounding="false" DecimalDigits="2" />
<IncrementSettings InterceptMouseWheel="false" />
</telerik:RadNumericTextBox>
</ItemTemplate>
</telerik:GridTemplateColumn>
RadInputManager Kullanımı
<![if !supportLists]>1. <![endif]>RadInputManager Tanımla
<asp:Content ID="ArdiyesizGirisTarihiListesiContent" ContentPlaceHolderID="MainContent" runat="Server">
<telerik:RadInputManager ID="RadInputManager1" runat="server">
<telerik:NumericTextBoxSetting BehaviorID="NumericBehavior1" InitializeOnClient="false" Type="Number" DecimalDigits="2" AllowRounding="false" >
</telerik:NumericTextBoxSetting>
</telerik:RadInputManager>
<table border="0" cellpadding="0" cellspacing="0" width="980">
<tr>
<![if !supportLists]>2. <![endif]>Grid OnItemCreated Olayını Tanımla
<telerik:RadGrid OnItemCreated="PazarlamaArdiyeHesabiGridView_ItemCreated">
<![if !supportLists]>3. <![endif]>Grid Üzerinde Column Olarak ASP TextBox Tanımla
<telerik:GridTemplateColumn UniqueName="TutarBunyeColumn" SortExpression="TutarBunye" HeaderText="<%$ Resources:SabitVeri, ItemBunyedeKalacak %>">
<ItemTemplate>
<asp:textbox width="50px" v id="TutarBunyeTextBox" runat="server" text='<%# Bind("TutarBunye") %>'></asp:textbox>
</ItemTemplate>
</telerik:GridTemplateColumn>
<![if !supportLists]>4. <![endif]>OnItemCreated Metodunu Yaz
protected void PazarlamaArdiyeHesabiGridView_ItemCreated(object sender, GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem item = e.Item as GridDataItem;
NumericTextBoxSetting numericSetting = (NumericTextBoxSetting)RadInputManager1.GetSettingByBehaviorID("NumericBehavior1");
TextBox tutarBunyeTextBox = item["TutarBunyeColumn"].FindControl("TutarBunyeTextBox") as TextBox;
if (tutarBunyeTextBox != null)
numericSetting.TargetControls.Add(new TargetInput(tutarBunyeTextBox.UniqueID, true));
}
}