This is a migrated thread and some comments may be shown as answers.

Postback actual state on Load_Page event

2 Answers 44 Views
ListView
This is a migrated thread and some comments may be shown as answers.
zDog
Top achievements
Rank 1
zDog asked on 29 May 2014, 06:28 AM
Good day!

In the code snippet below I'm always getting RadListView1.SelectedValue from previous ViewState at Page_Load handler.
For example, when I press "3" in the listview, I get "" in LabelRadListView1SelectedValue. Next time I press "5" and get "3" and so on.

Why "RadListView1.SelectedValue" isn't actual at Page_Load event on PostBack?
For example, It's going well at Page_LoadComplete event. So why RadListView1 restored from ViewState after Page_Load event?
I'm confused. Please, help!

RadListVew.aspx:
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="RadListView.aspx.cs" Inherits="RadListV" %>
 
<%@ Import Namespace="Telerik.Web.UI" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <telerik:RadListView runat="server" ID="RadListView1" ItemPlaceholderID="PlaceHolderListContainer" DataKeyNames="data">
        <LayoutTemplate>
            <asp:PlaceHolder ID="PlaceHolderListContainer" runat="server"></asp:PlaceHolder>
        </LayoutTemplate>
        <ItemTemplate>
            <asp:LinkButton ID="LinkButton1" runat="server" CommandName="Select">
                <asp:Label runat="server" ID="Label1" Text='<%#Eval("data")%>' />
            </asp:LinkButton>
        </ItemTemplate>
        <SelectedItemTemplate>
            <span style="font-weight: bold;">
                <asp:LinkButton ID="LinkButton1" runat="server" CommandName="Select">
                    <asp:Label runat="server" ID="Label1" Text='<%#Eval("data")%>' />
                </asp:LinkButton>
            </span>
        </SelectedItemTemplate>
    </telerik:RadListView>
 
    <div>
        <asp:Label runat="server" ID="LabelRadListView1SelectedValue" />
    </div>
</asp:Content>


RadListVew.aspx.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using Telerik.Web.UI;
 
public partial class RadListV : System.Web.UI.Page
{
    class ListItem
    {
        public int data { get; set; }
    }
 
    List<ListItem> ListDataSource
    {
        get
        {
            return (List<ListItem>)Session["ListDataSource"];
        }
 
        set { Session["ListDataSource"] = value; }
    }
 
    protected void Page_Load(object sender, EventArgs e)
    {
        if (RadListView1.SelectedValue != null)
        LabelRadListView1SelectedValue.Text = RadListView1.SelectedValue.ToString();
    }
 
    protected void Page_Init(object sender, EventArgs e)
    {
        ListDataSource = new List<ListItem>();
        for (int i = 1; i < 5; i++)
        {
            ListDataSource.Add(new ListItem { data = i });
        }
        RadListView1.DataSource = ListDataSource;
    }
}




2 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 29 May 2014, 06:52 AM
Hi,

As a suggestion please try to attach the OnSelectedIndexChanged event of RadListView  to access the SelectedValue.

C#:
protected void RadListView1_SelectedIndexChanged(object sender, EventArgs e)
{
    LabelRadListView1SelectedValue.Text = RadListView1.SelectedValue.ToString();
}

Thanks,
Princy.
0
zDog
Top achievements
Rank 1
answered on 29 May 2014, 06:57 AM
It's works well too.
Tags
ListView
Asked by
zDog
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
zDog
Top achievements
Rank 1
Share this question
or