Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
180
WebSplitter, WebDatagrids and UpdatePanels
posted

I have a websplitter with 2 panes. Each pane includes an UpdatePanel. Inside each UpdatePanel is a WebDatagrid. The left WDG has selection/activation enabled and I want to reload the WDG on the right on the RowSelectionChanged event.

The target WDG updates when I use a button to fire the update, but not when it is the RowSelectionChanged event. Any help would be appreciated. Sample code is below:

Markup:

<asp:ScriptManager ID="scrptManager" runat=server>
    </asp:ScriptManager>
    <ig:WebSplitter ID="WebSplitter1" runat="server" Height="800px" Width="100%">
        <panes>
            <ig:SplitterPane runat="server" Size="20%" >
                <Template>
                    <asp:UpdatePanel ID="updSections" runat=server>
                        <ContentTemplate>
                            <asp:Button ID="btnTest" runat=server Text="Test" onclick="btnTest_Click" />
                              <ig:WebDataGrid ID="wdgSections" runat="server" AutoGenerateColumns="False"
                                Height="400px" Width="100%" DataKeyFields="Number" EnableAjax=true  
                                ShowHeader="False" style="direction: ltr"  OnRowSelectionChanged="wdgSections_RowSelectionChanged"    >
                                 <Columns>
                                    <ig:BoundDataField DataFieldName="Number" Key="Number" Width="100%"
                                        >
                                        <Header Text="Number" />
                                    </ig:BoundDataField>
                                </Columns>
                            <Behaviors >
                                <ig:Activation Enabled="true"  />
                                <ig:Selection Enabled ="true" CellClickAction="Row" RowSelectType="Single"
                                    CellSelectType="None" >
                                <AutoPostBackFlags RowSelectionChanged="True" />
                                </ig:Selection>
                               
                            </Behaviors>
                        </ig:WebDataGrid>
                        </ContentTemplate>
                    </asp:UpdatePanel>
                </Template>
            </ig:SplitterPane>
            <ig:SplitterPane runat="server" Size="80%" >
                    <Template>
                        <asp:UpdatePanel ID="updTest" runat=server>
                            <ContentTemplate>
                                <asp:Label ID="lblTest" runat=server  text="0"></asp:Label>
                                 <ig:WebDataGrid ID="wdgQuestions" runat="server" AutoGenerateColumns="False"
                                     Height="108px" Width="100%" DataKeyFields="Number" EnableDataViewState="True"
                                   EnableAjax="True"
                                         style="direction: ltr"   >
                                    <Columns>
                                        <ig:BoundDataField DataFieldName="Number" Key="Number" Width="100%"
                                            >
                                            <Header Text="Number" />
                                        </ig:BoundDataField>
                                    </Columns>
                                <Behaviors >
                                    <ig:Activation Enabled="true"  />
                                <ig:Selection Enabled ="true" CellClickAction="Row" RowSelectType="Single"
                                        CellSelectType="None" >
                                    <AutoPostBackFlags RowSelectionChanged="True" />
                                    </ig:Selection>
                                </Behaviors>
                                </ig:WebDataGrid>
                            </ContentTemplate>
                        </asp:UpdatePanel>
                    </Template>
             </ig:SplitterPane>
        </panes>
    </ig:WebSplitter>

Code Behind:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections;


namespace FundsDecsions
{
    public partial class Experiment : System.Web.UI.Page
    {

        List<number> numbers;

        protected void Page_Init(object sender, EventArgs e)
        {
            AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
            trigger.EventName = "RowSelectionChanged";
            trigger.ControlID = wdgSections.UniqueID.ToString();
            updTest.Triggers.Add(trigger);

            trigger = new AsyncPostBackTrigger();
            trigger.EventName = "Click";
            trigger.ControlID = btnTest.UniqueID.ToString();
            updTest.Triggers.Add(trigger);
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                List<number> numbers2 = new List<number>();
                numbers2.Add(new number(1));
                numbers2.Add(new number(2));
                numbers2.Add(new number(3));

                wdgSections.DataSource = numbers2;

                Session["numbers2"] = numbers2;

                numbers = new List<number>();
                numbers.Add(new number(1));

                wdgQuestions.DataSource = numbers;

                Session["numbers"] = numbers;
            }
            else
            {
                numbers = (List<number>)Session["numbers"];

                wdgSections.DataSource = (List<number>)Session["numbers2"];
            }
        }

        protected void wdgSections_RowSelectionChanged(object sender, Infragistics.Web.UI.GridControls.SelectedRowEventArgs e)
        {
            lblTest.Text = (Convert.ToInt32(lblTest.Text) + 1).ToString();
            numbers.Add(new number((Convert.ToInt32(lblTest.Text) + 1)));

            wdgQuestions.DataSource = numbers;
        }

        protected void btnTest_Click(object sender, EventArgs e)
        {
            lblTest.Text = (Convert.ToInt32(lblTest.Text) + 1).ToString();
            numbers.Add(new number((Convert.ToInt32(lblTest.Text) + 1)));

            wdgQuestions.DataSource = numbers;
        }
    }

    public class number
    {

        private int _number;

        public int Number
        {
            get { return _number; }
            set
            {
                _number = value;

            }
        }


        public number() { }

        public number(int num)
        {
            this.Number = num;

        }
    }
}

 

Parents
No Data
Reply Children
No Data