【问题标题】:Telerik Radgrid on Partial AjaxifyingTelerik Radgrid 关于部分 Ajaxifying
【发布时间】:2013-06-26 15:56:15
【问题描述】:

我的页面中有 2 个 radgrid。我需要同时更新 2 个 radgrid。当单击 radgrid1 中的按钮时,我需要将该行填充到 radgrid 2,反之亦然。我的代码进行了更新,但我遇到了一个问题,当从 radgrid1 lastrow 单击按钮时,该行是未附加到 radgrid 2 并且我也看不到 radgrid 1 中的行。这仅发生在 lastrow 上,类似地,当在 radgrid 2 中单击 lastrow 按钮时,它在我的 radgrid 1 中缺少显示它。否则来自顶部的任何行单击事件或midrow 只有在单击 lastrow 时才能正常工作,我发现它丢失并与下一个单击的 toprow 行一起出现。我需要知道仅在我的 radgrid lastrow 上导致这种不当行为的原因。

 <telerik:RadFormDecorator ID="RadFormDecorator1" runat="server" Skin="Default"  EnableRoundedCorners="False" DecoratedControls="All" />

<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" DefaultLoadingPanelID="RadAjaxLoadingPanel1">
    <AjaxSettings>

          <telerik:AjaxSetting AjaxControlID="RadGrid1">
           <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1">
                </telerik:AjaxUpdatedControl>
            </UpdatedControls>
        </telerik:AjaxSetting>

         <telerik:AjaxSetting AjaxControlID="RadGrid2">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadGrid2" LoadingPanelID="RadAjaxLoadingPanel1">
                </telerik:AjaxUpdatedControl>
            </UpdatedControls>
        </telerik:AjaxSetting>



        <telerik:AjaxSetting AjaxControlID="RadGrid1LinkButton">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadGrid2" LoadingPanelID="RadAjaxLoadingPanel1">
                </telerik:AjaxUpdatedControl>
                <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1">
                </telerik:AjaxUpdatedControl>
            </UpdatedControls>
        </telerik:AjaxSetting>

         <telerik:AjaxSetting AjaxControlID="RadGrid2LinkButton">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1">
                </telerik:AjaxUpdatedControl>
                <telerik:AjaxUpdatedControl ControlID="RadGrid2" LoadingPanelID="RadAjaxLoadingPanel1">
                </telerik:AjaxUpdatedControl>
            </UpdatedControls>
        </telerik:AjaxSetting>


    </AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server">
</telerik:RadAjaxLoadingPanel>







<h3 style="text-align:left"><i class="icon-group"></i>&nbsp Shared With</h3><br />

<telerik:RadGrid ID="RadGrid1" 

    Width="100%" OnNeedDataSource="RadGrid1_NeedDataSource" AllowSorting="True" DataKeyNames="CartId" 

    PageSize="10" AutoGenerateColumns="false" AllowPaging="True" AllowMultiRowSelection="True" runat="server" GridLines="None">

    <MasterTableView Width="100%" AllowMultiColumnSorting="true" Summary="RadGrid table" DataKeyNames="CartId">
   <Columns>
   <telerik:GridTemplateColumn UniqueName="UserNameTemplateColumn" HeaderText="UserName" SortExpression="UserName" >


   <ItemTemplate>
    <asp:Label ID="UserNamelbl" runat="server" Text='<%# Eval("UserName")%>'></asp:Label>
    </ItemTemplate>
    </telerik:GridTemplateColumn>
    <telerik:GridTemplateColumn UniqueName="DateTemplateColumn" HeaderText="Date" SortExpression="Date" >
     <ItemTemplate>
    <asp:Label ID="RequestDate" runat="server" Text='<%# Eval("Date")%>'></asp:Label>

   </ItemTemplate>
  </telerik:GridTemplateColumn>

   <telerik:GridTemplateColumn UniqueName="TemplateColumn1" HeaderText="add user"
                AllowFiltering="false">
                <ItemStyle HorizontalAlign="Center"></ItemStyle>

    <ItemTemplate>

   <asp:LinkButton ID="RadGrid1LinkButton" 
    OnCommand="AddUser" CommandName="AddUser" runat="server"  CommandArgument='<%# Eval("CartId")%>' >

   </asp:LinkButton>


   </ItemTemplate>

   </telerik:GridTemplateColumn>


   </Columns>

    </MasterTableView>

   <PagerStyle Mode="NextPrevAndNumeric"></PagerStyle>

</telerik:RadGrid>



<telerik:RadGrid ID="RadGrid2"  OnNeedDataSource="RadGrid2_NeedDataSource"   AllowSorting="True" DataKeyNames="CartId" 

    PageSize="10" AutoGenerateColumns="false" AllowPaging="True" AllowMultiRowSelection="True" runat="server" GridLines="None">

    <MasterTableView Width="100%" AllowMultiColumnSorting="true" Summary="RadGrid table" DataKeyNames="RecepientlearningCartId">
   <Columns>
   <telerik:GridTemplateColumn UniqueName="UserNameTemplateColumn" HeaderText="UserName" SortExpression="UserName" >




     <ItemTemplate>

    <asp:Label ID="UserNamelbl" runat="server" Text='<%# Eval("UserName")%>'></asp:Label>

   </ItemTemplate>
  </telerik:GridTemplateColumn>
  <telerik:GridTemplateColumn UniqueName="DateTemplateColumn" HeaderText="Date" SortExpression="Date" >
     <ItemTemplate>
    <asp:Label ID="Date" runat="server" Text='<%# Eval("Date")%>'></asp:Label>

   </ItemTemplate>
  </telerik:GridTemplateColumn>

  <telerik:GridTemplateColumn UniqueName="TemplateColumn1" HeaderText="Revoke Share"
                AllowFiltering="false">
                <ItemStyle HorizontalAlign="Center"></ItemStyle>


    <ItemTemplate>

  <asp:LinkButton ID="radGrid2LinkButton"  
   OnCommand="Removeuser" CommandName="Removeuser" runat="server"  CommandArgument='<%# Eval("CartId")%>' >

   </asp:LinkButton>


   </ItemTemplate>

   </telerik:GridTemplateColumn>


   </Columns>

    </MasterTableView>

   <PagerStyle Mode="NextPrevAndNumeric"></PagerStyle>

</telerik:RadGrid>

【问题讨论】:

    标签: telerik-grid


    【解决方案1】:

    请尝试以下代码 sn-p。

    .ASPX

    <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server">
    </telerik:RadAjaxLoadingPanel>
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="RadGrid1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" />
                    <telerik:AjaxUpdatedControl ControlID="RadGrid2" LoadingPanelID="RadAjaxLoadingPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="RadGrid2">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadGrid2" LoadingPanelID="RadAjaxLoadingPanel1" />
                    <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>
    <telerik:RadGrid ID="RadGrid1" Width="100%" OnNeedDataSource="RadGrid1_NeedDataSource"
        AllowSorting="True" DataKeyNames="ID" PageSize="10" AutoGenerateColumns="false"
        AllowPaging="True" AllowMultiRowSelection="True" runat="server" GridLines="None">
        <MasterTableView Width="100%" AllowMultiColumnSorting="true" Summary="RadGrid table"
            DataKeyNames="ID">
            <Columns>
                <telerik:GridTemplateColumn UniqueName="UserNameTemplateColumn" HeaderText="UserName"
                    SortExpression="UserName">
                    <ItemTemplate>
                        <asp:Label ID="UserNamelbl" runat="server" Text='<%# Eval("Name")%>'></asp:Label>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn UniqueName="DateTemplateColumn" HeaderText="Date" SortExpression="Date">
                    <ItemTemplate>
                        <asp:Label ID="RequestDate" runat="server" Text='<%# Eval("Name")%>'></asp:Label>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn UniqueName="TemplateColumn1" HeaderText="add user" AllowFiltering="false">
                    <ItemStyle HorizontalAlign="Center"></ItemStyle>
                    <ItemTemplate>
                        <asp:LinkButton ID="RadGrid1LinkButton" OnCommand="AddUser" CommandName="AddUser"
                            Text="click here" runat="server" CommandArgument='<%# Eval("ID")%>'>
                        </asp:LinkButton>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
            </Columns>
        </MasterTableView>
        <PagerStyle Mode="NextPrevAndNumeric"></PagerStyle>
    </telerik:RadGrid>
    <telerik:RadGrid ID="RadGrid2" OnNeedDataSource="RadGrid2_NeedDataSource" AllowSorting="True"
        DataKeyNames="CartId" PageSize="10" AutoGenerateColumns="false" AllowPaging="True"
        AllowMultiRowSelection="True" runat="server" GridLines="None">
        <MasterTableView Width="100%" AllowMultiColumnSorting="true" Summary="RadGrid table"
            DataKeyNames="ID">
            <Columns>
                <telerik:GridTemplateColumn UniqueName="UserNameTemplateColumn" HeaderText="UserName"
                    SortExpression="UserName">
                    <ItemTemplate>
                        <asp:Label ID="UserNamelbl" runat="server" Text='<%# Eval("Name")%>'></asp:Label>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn UniqueName="DateTemplateColumn" HeaderText="Date" SortExpression="Date">
                    <ItemTemplate>
                        <asp:Label ID="Date" runat="server" Text='<%# Eval("Name")%>'></asp:Label>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn UniqueName="TemplateColumn1" HeaderText="Revoke Share"
                    AllowFiltering="false">
                    <ItemStyle HorizontalAlign="Center"></ItemStyle>
                    <ItemTemplate>
                        <asp:LinkButton ID="radGrid2LinkButton" OnCommand="Removeuser" CommandName="Removeuser"
                            Text="click here" runat="server" CommandArgument='<%# Eval("ID")%>'>
                        </asp:LinkButton>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
            </Columns>
        </MasterTableView>
        <PagerStyle Mode="NextPrevAndNumeric"></PagerStyle>
    </telerik:RadGrid>
    

    .ASPX.CS

    protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
    {
        dynamic data = new[] {
            new { ID = 1, Name =DateTime.Now.ToString()},
            new { ID = 2, Name = "Name2"},
            new { ID = 3, Name = "Name3"},
             new { ID = 4, Name = "Name4"},
            new { ID = 5, Name = "Name5"}
        };
    
        RadGrid1.DataSource = data;
    }
    
    protected void RadGrid2_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
    {
        dynamic data = new[] {
            new { ID = 1, Name =DateTime.Now.ToString()},
            new { ID = 2, Name = "Name2"},
            new { ID = 3, Name = "Name3"},
             new { ID = 4, Name = "Name4"},
            new { ID = 5, Name = "Name5"}
        };
    
        RadGrid2.DataSource = data;
    }
    
    
    
    protected void AddUser(object sender, CommandEventArgs e)
    {
        RadGrid1.Rebind();
        RadGrid2.Rebind();
    }
    protected void Removeuser(object sender, CommandEventArgs e)
    {
        RadGrid1.Rebind();
        RadGrid2.Rebind();
    }
    

    【讨论】:

    • 我已经尝试过你的代码。但是效果很好。不知道是什么真正导致了这个问题。
    • 我已经更新了上面的代码sn-p。请检查一下,如果有任何问题,请告诉我。
    猜你喜欢
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多