2012-04-18 7 views
0

RadGridコントロールとラベルをAjaxifyしようとしています。ここに私のコードです。 RadGridが変更されたときにLabel値が更新されることはありません。ここで何が間違っているのか教えてください。RadGridにAjaxifyとコードの背後にあるコード

ありがとうございました。

    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> 
         <AjaxSettings> 
          <telerik:AjaxSetting AjaxControlID="RadAjaxManager1"> 
           <UpdatedControls> 
            <telerik:AjaxUpdatedControl ControlID="RadGrid1" /> 
           </UpdatedControls> 
          </telerik:AjaxSetting> 
         </AjaxSettings> 
        </telerik:RadAjaxManager> 

        <telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="RadAjaxLoadingPanel1"> 
         <telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false"> 
          <MasterTableView> 
           <Columns> 
           </Columns> 
          </MasterTableView> 
         </telerik:RadGrid> 
        </telerik:RadAjaxPanel> 
     <div id="div1" runat="server"> 
      <table id="table1" runat="server" > 
       <tr> 
        <td align="center"> 
         <asp:Label ID="lblName" runat="server" Font-Bold="true"> </asp:Label> 
        </td> 
       </tr> 
      </table> 
     </div> 

コードが遅れています。ロードパネル用のオーバーロードを使用せずに

protected void Page_Load(object sender, EventArgs e) 
    { 
     try 
     { 
      if (!Page.IsPostBack) 
      { 
       RadAjaxManager1.AjaxSettings.AddAjaxSetting(RadGrid1, lblName, null); 
      } 
     } 
    } 

答えて

0

コードスニペットの下に確認してくださいまたはデモ。 これは私の側で正しく機能しました。問題がある場合は 私に教えてください。

.aspxの

<telerik:RadScriptManager ID="RadScriptManager1" runat="server"> 
</telerik:RadScriptManager> 
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> 
</telerik:RadAjaxManager> 
<telerik:RadGrid ID="RadGrid1" runat="server" OnNeedDataSource="RadGrid1_NeedDataSource" 
    AllowPaging="True" OnPreRender="RadGrid1_PreRender" AutoGenerateColumns="false"> 
    <PagerStyle AlwaysVisible="true" /> 
    <MasterTableView> 
     <Columns> 
      <telerik:GridBoundColumn DataField="Name" HeaderText="Name" UniqueName="Name"> 
      </telerik:GridBoundColumn> 
     </Columns> 
    </MasterTableView> 
</telerik:RadGrid> 
<br /> 
<asp:Label ID="Label1" runat="server"></asp:Label> 

.aspx.cs

protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) 
{ 
    DateTime dt = new DateTime(); 

    dynamic data = new[] { 
      new { ID = 1, Name ="Name1", customdate=dt,NO = 11.00}, 
      new { ID = 2, Name = "Name2", customdate=dt,NO = 11.00}, 
      new { ID = 3, Name = "Name3", customdate=dt,NO = 11.00}, 
      new { ID = 4, Name = "Name4", customdate=dt.AddYears(2011),NO = 11.44}, 
      new { ID = 5, Name = "Name5", customdate=dt,NO = 10.4} 
     }; 

    RadGrid1.DataSource = data; 
} 


protected void Page_Load(object sender, EventArgs e) 
{ 
    RadAjaxManager1.AjaxSettings.AddAjaxSetting(RadGrid1, Label1, null); 
} 
protected void RadGrid1_PreRender(object sender, EventArgs e) 
{ 

    Label1.Text = DateTime.Now.ToString(); 
} 

上記の例により、あなたはradgridのページサイズを変更した場合、それはまた、ラベルのテキストを更新します。

0

試してみてください。

RadAjaxManager1.AjaxSettings.AddAjaxSetting(RadGrid1, lblName); 

それはまだ動作しない場合は、このような何かを試してみてください。

ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl(RadGrid1); 
ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl(lblName); 
+0

私は過負荷を使わずに試しました。私はまだ同じ問題があります。 2番目のコードブロックも試しましたが、 'lblName'コントロールで 'INamingContainerまたはIPostBackEventHandler'エラーを実装する必要があります。 – nav100

関連する問題