PDA

View Full Version : [CLOSED] ASP Dropdown looses it's values after postback if gridpanel used



hemantpatil
Mar 20, 2013, 6:35 AM
Hi,

I m Using Ext.net v2.0 with ASP.Net (VB)

what i m trying to do is, on my page i'll have a 1 or 2 dropdowns, which will be filled from database (as these are Serverside controls, i'll fill them on first load only (Not Ispostback then) so that all the values will remain untill whole page cycle even after postback. this works fine when i use only dopdown on my page.

but when i try to add Gridpanel on that page, dropdown controls looses it's values after postback(what i want to do is, i want to fill the gridpanel data on the basis of selection from dropdown. i'll fill the gridpanel on Dropdown selectedindexchanged event.). please see attached screenshot for reference.

58605861

Please find below attached source code

Default.aspx



<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="Test_Ext.Net_GridPanel._Default" %>

<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<%@ Register src="ExtNetGrid.ascx" tagname="ExtNetGrid" tagprefix="uc2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head id="Head1" runat="server">
<title>Simple Array Grid - Ext.NET Examples</title>
<link href="../../../../resources/css/examples.css" rel="stylesheet" type="text/css" />
<style>
.x-grid-row-over .x-grid-cell-inner
{
font-weight: bold;
}
</style>

<script>
var template = '<span style="color:{0};">{1}</span>';

var change = function (value) {
return Ext.String.format(template, (value > 0) ? "green" : "red", value);
};

var pctChange = function (value) {
return Ext.String.format(template, (value > 0) ? "green" : "red", value + "%");
};

var StatusRenderer = function (value, st) {
var ind = st.find("ID", value);
var r = st.getAt(ind);
if (Ext.isEmpty(r)) {
return "";
}
return r.data.Name;

};
</script>

</head>

<body>
<form id="Form1" runat="server">
<div style="width: 85%; vertical-align:top;margin:0 auto; text-align: left;">
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true">
</asp:DropDownList>
<uc2:ExtNetGrid ID = "TestControl1" runat="server"/>
<asp:Button ID="btnUpdate" runat="server" Text="Update"/>
<asp:Button ID="btnCancel" runat="server" Text="Cancel"/>
</div>
</form>
</body>
</html>


Default.aspx.vb



Imports System.Web.UI.WebControls
Imports System.Configuration

Imports ext1 = Ext.Net
Imports Ext.Net
Imports Ext.Net.JSON

Partial Public Class _Default
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
TestControl1.Datasource = Me.Data

If Not IsPostBack Then
DropDownList1.Items.Add("3m Co")
DropDownList1.Items.Add("Alcoa Inc")
DropDownList1.Items.Add("Boeing Co.")
DropDownList1.Items.Add("Caterpillar Inc.")
DropDownList1.Items.Add("McDonald""s Corporation")
End If
End Sub

Private ReadOnly Property Data() As Object()
Get
Return New Object() {New Object() {"3m Co", 71.72, 0.02, 0.03, "9/1 12:00am"}, New Object() {"Alcoa Inc", 29.01, 0.42, 1.47, "9/1 12:00am"}, New Object() {"Altria Group Inc", 83.81, 0.28, 0.34, "9/1 12:00am"}, New Object() {"American Express Company", 52.55, 0.01, 0.02, "9/1 12:00am"}, New Object() {"American International Group, Inc.", 64.13, 0.31, 0.49, "9/1 12:00am"}, New Object() {"AT&T Inc.", 31.61, -0.48, -1.54, "9/1 12:00am"}, _
New Object() {"Boeing Co.", 75.43, 0.53, 0.71, "9/1 12:00am"}, New Object() {"Caterpillar Inc.", 67.27, 0.92, 1.39, "9/1 12:00am"}, New Object() {"Citigroup, Inc.", 49.37, 0.02, 0.04, "9/1 12:00am"}, New Object() {"E.I. du Pont de Nemours and Company", 40.48, 0.51, 1.28, "9/1 12:00am"}, New Object() {"Exxon Mobil Corp", 68.1, -0.43, -0.64, "9/1 12:00am"}, New Object() {"General Electric Company", 34.14, -0.08, -0.23, "9/1 12:00am"}, _
New Object() {"General Motors Corporation", 30.27, 1.09, 3.74, "9/1 12:00am"}, New Object() {"Hewlett-Packard Co.", 36.53, -0.03, -0.08, "9/1 12:00am"}, New Object() {"Honeywell Intl Inc", 38.77, 0.05, 0.13, "9/1 12:00am"}, New Object() {"Intel Corporation", 19.88, 0.31, 1.58, "9/1 12:00am"}, New Object() {"International Business Machines", 81.41, 0.44, 0.54, "9/1 12:00am"}, New Object() {"Johnson & Johnson", 64.72, 0.06, 0.09, "9/1 12:00am"}, _
New Object() {"JP Morgan & Chase & Co", 45.73, 0.07, 0.15, "9/1 12:00am"}, New Object() {"McDonald""s Corporation", 36.76, 0.86, 2.4, "9/1 12:00am"}, New Object() {"Merck & Co., Inc.", 40.96, 0.41, 1.01, "9/1 12:00am"}, New Object() {"Microsoft Corporation", 25.84, 0.14, 0.54, "9/1 12:00am"}, New Object() {"Pfizer Inc", 27.96, 0.4, 1.45, "9/1 12:00am"}, New Object() {"The Coca-Cola Company", 45.07, 0.26, 0.58, "9/1 12:00am"}, _
New Object() {"The Home Depot, Inc.", 34.64, 0.35, 1.02, "9/1 12:00am"}, New Object() {"The Procter & Gamble Company", 61.91, 0.01, 0.02, "9/1 12:00am"}, New Object() {"United Technologies Corporation", 63.26, 0.55, 0.88, "9/1 12:00am"}, New Object() {"Verizon Communications", 35.57, 0.39, 1.11, "9/1 12:00am"}, New Object() {"Wal-Mart Stores, Inc.", 45.45, 0.73, 1.63, "9/1 12:00am"}}
End Get
End Property
End Class


ExtNetGrid.ascx


<%@ Control Language="VB" AutoEventWireup="true" CodeBehind="ExtNetGrid.ascx.vb" Inherits="Test_Ext.Net_GridPanel.WebUserControl1" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>

<script type="text/javascript">
// For Combobox Column Display Value
var DDLRenderer = function (value, st) {
var ind = st.find("CODE", value);
var r = st.getAt(ind);
if (Ext.isEmpty(r)) {
return "";
}
return r.data.NAME;
};
</script>

<style type="text/css">
.AlignRight .x-form-field {
background-image: none;
text-align: right;
</style>
<body>
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<%--Grid Goes Here--%>
<ext:GridPanel ID="GridPanel1" runat="server" Title="Array Grid" Width="600" Height="350" Flex="100" >
<Store>
<ext:Store ID="Store1" runat="server">
<Model>
<ext:Model ID="Model1" runat="server">
<Fields>
<ext:ModelField Name="company" />
<ext:ModelField Name="price" Type="Float" />
<ext:ModelField Name="change" Type="Float" />
<ext:ModelField Name="pctChange" Type="Float" />
<ext:ModelField Name="lastChange" Type="Date" DateFormat="M/d hh:mmtt" />
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Store>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column ID="Column1" runat="server" Text="Company" DataIndex="company" Width="250">
<Editor>
<ext:TextField ID="txtCol1" runat="server" AllowBlank="false"/>
</Editor>
</ext:Column>
<ext:Column ID="Column2" runat="server" Text="Price" DataIndex="price" Width="120">
<Renderer Format="UsMoney" />
<Editor>
<ext:TextField ID="TextField1" runat="server"/>
</Editor>
</ext:Column>
<ext:Column ID="Column3" runat="server" Text="Change" DataIndex="change" Width="150">
<Renderer Fn="change" />
<Editor>
<ext:TextField ID="TextField2" runat="server" AllowBlank="false" />
</Editor>
</ext:Column>
<ext:Column ID="Column4" runat="server" Text="Change" DataIndex="pctChange" Width="80">
<Renderer Fn="pctChange" />
</ext:Column>
<ext:DateColumn ID="DateColumn1" runat="server" Text="Last Updated" DataIndex="lastChange" Width="190"/>
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" />
</SelectionModel>
<Plugins>
<ext:CellEditing ID="CellEditing1" runat="server" />
</Plugins>
</ext:GridPanel>
<%--Grid Goes Here--%>
</body>

Daniil
Mar 20, 2013, 9:51 AM
Hi @hemantpatil,

Using a GridPanel or Ext.NET in a whole?

I guess it happens when you add a ResourceManager on the page, not a GridPanel.

Please try to set up this setting for the ResourceManager.

DisableViewState="false"

By default, Ext.NET eliminates ViewState.

By the way, do you really need a native ASP.NET DropDownList control? It might be replaced with a ComboBox with ease.

hemantpatil
Mar 20, 2013, 11:24 AM
Thanks Daniil,

your solutions worked perfectly for me. thanks a lot.

actually we are injecting Ext.net components into out existing ASP.Net app. initially we are using only gridpanel, we are planning to use all of the ext.net components soon.

hemantpatil
Mar 20, 2013, 11:24 AM
you can close the thread.