Hi there,
I have two RadGrids and two buttons.
In Ajax manager i reference RadGrids as they should be updated upon the event from the buttons.
When the page loads, it does not show my radgrids. When I click the buttons it renders data into the radgrids and they show up.
When I remove references between buttons and radgrids from the Ajax manager, everything works as expected at the page load, e.i. the radgrids are showing up with corresponding data.
Though I need Ajax updates to the radgrids on the button click.
I am sure that problem resolution must be very simple.
Below is my code:
The code behind:
I have two RadGrids and two buttons.
In Ajax manager i reference RadGrids as they should be updated upon the event from the buttons.
When the page loads, it does not show my radgrids. When I click the buttons it renders data into the radgrids and they show up.
When I remove references between buttons and radgrids from the Ajax manager, everything works as expected at the page load, e.i. the radgrids are showing up with corresponding data.
Though I need Ajax updates to the radgrids on the button click.
I am sure that problem resolution must be very simple.
Below is my code:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true"
CodeBehind="TestPrices.aspx.cs" Inherits="kukulika.Manufacturer.TestPrices" %>
<
asp:Content
ID
=
"Content1"
ContentPlaceHolderID
=
"HeadContent"
runat
=
"server"
>
<
style
type
=
"text/css"
>
.style1
{
width: 100%;
}
.style3
{
width: 313px;
}
.style4
{
width: 181px;
}
.style5
{
width: 255px;
}
</
style
>
</
asp:Content
>
<
asp:Content
ID
=
"Content2"
ContentPlaceHolderID
=
"MainContent"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
<
Scripts
>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.Core.js"
>
</
asp:ScriptReference
>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQuery.js"
>
</
asp:ScriptReference
>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQueryInclude.js"
>
</
asp:ScriptReference
>
</
Scripts
>
</
telerik:RadScriptManager
>
<
telerik:RadTabStrip
ID
=
"RadTabStrip1"
runat
=
"server"
SelectedIndex
=
"5"
Width
=
"900px"
>
<
Tabs
>
<
telerik:RadTab
runat
=
"server"
Text
=
"New Quotes"
NavigateUrl
=
"~/Manufacturer/ManufacturerMain.aspx"
>
</
telerik:RadTab
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Active Quotes"
Enabled
=
"False"
>
</
telerik:RadTab
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Confirmed Jobs"
Enabled
=
"False"
>
</
telerik:RadTab
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Profile"
NavigateUrl
=
"~/Manufacturer/Profile.aspx"
>
</
telerik:RadTab
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Pricing"
NavigateUrl
=
"~/Manufacturer/Prices.aspx"
>
</
telerik:RadTab
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Test Projects"
NavigateUrl
=
"~/Manufacturer/TestPrices.aspx"
Selected
=
"True"
>
</
telerik:RadTab
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Appliance Specs"
Enabled
=
"False"
>
</
telerik:RadTab
>
</
Tabs
>
</
telerik:RadTabStrip
>
<
fieldset
style
=
"margin: 0px"
>
<
table
class
=
"style1"
>
<
tr
>
<
td
class
=
"style5"
>
<
telerik:RadComboBox
ID
=
"rcbServiceType"
runat
=
"server"
DataSourceID
=
"sqlServiceType"
DataTextField
=
"ServiceType"
DataValueField
=
"ServiceTypeID"
Label
=
"Service:"
>
</
telerik:RadComboBox
>
</
td
>
<
td
class
=
"style3"
rowspan
=
"3"
>
<
telerik:RadGrid
ID
=
"rgStats"
runat
=
"server"
AutoGenerateColumns
=
"False"
CellSpacing
=
"0"
DataSourceID
=
"sqlStats"
GridLines
=
"None"
ShowHeader
=
"False"
Skin
=
"Sitefinity"
>
<
AlternatingItemStyle
BackColor
=
"White"
/>
<
MasterTableView
DataSourceID
=
"sqlStats"
>
<
CommandItemSettings
ExportToPdfText
=
"Export to PDF"
></
CommandItemSettings
>
<
RowIndicatorColumn
Visible
=
"True"
FilterControlAltText
=
"Filter RowIndicator column"
>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
Visible
=
"True"
FilterControlAltText
=
"Filter ExpandColumn column"
>
</
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"Name"
FilterControlAltText
=
"Filter Name column"
UniqueName
=
"Name"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Value"
FilterControlAltText
=
"Filter Value column"
UniqueName
=
"Value"
>
</
telerik:GridBoundColumn
>
</
Columns
>
<
EditFormSettings
>
<
EditColumn
FilterControlAltText
=
"Filter EditCommandColumn column"
>
</
EditColumn
>
</
EditFormSettings
>
<
AlternatingItemStyle
BackColor
=
"White"
/>
</
MasterTableView
>
<
FilterMenu
EnableImageSprites
=
"False"
>
<
WebServiceSettings
>
<
ODataSettings
InitialContainerName
=
""
>
</
ODataSettings
>
</
WebServiceSettings
>
</
FilterMenu
>
<
HeaderContextMenu
CssClass
=
"GridContextMenu GridContextMenu_Default"
>
<
WebServiceSettings
>
<
ODataSettings
InitialContainerName
=
""
>
</
ODataSettings
>
</
WebServiceSettings
>
</
HeaderContextMenu
>
</
telerik:RadGrid
>
</
td
>
<
td
class
=
"style4"
style
=
"text-align: right"
>
<
telerik:RadButton
ID
=
"rbShowPrice"
runat
=
"server"
OnClick
=
"rbShowPrice_Click"
Text
=
"Show Price"
>
</
telerik:RadButton
>
</
td
>
<
td
style
=
"text-align: right"
>
<
telerik:RadButton
ID
=
"rbSaveProject"
runat
=
"server"
OnClick
=
"rbSaveProject_Click"
Text
=
"Save Project"
>
</
telerik:RadButton
>
</
td
>
</
tr
>
<
tr
>
<
td
class
=
"style5"
>
<
telerik:RadNumericTextBox
ID
=
"rtbLinerFootage"
runat
=
"server"
Culture
=
"en-US"
Label
=
"Total liner footage:"
LabelWidth
=
""
Value
=
"20"
Width
=
"150px"
>
</
telerik:RadNumericTextBox
>
<
telerik:RadComboBox
ID
=
"rcbUnits"
runat
=
"server"
DataSourceID
=
"sqlUnits"
DataTextField
=
"UnitName"
DataValueField
=
"UnitID"
Enabled
=
"False"
Skin
=
"Sitefinity"
Width
=
"50px"
>
</
telerik:RadComboBox
>
</
td
>
<
td
class
=
"style4"
>
</
td
>
<
td
>
</
td
>
</
tr
>
<
tr
>
<
td
class
=
"style5"
>
</
td
>
<
td
class
=
"style4"
>
</
td
>
<
td
>
</
td
>
</
tr
>
</
table
>
<
telerik:RadGrid
ID
=
"rgTestProject"
runat
=
"server"
AutoGenerateColumns
=
"False"
OnItemDataBound
=
"rgTestProject_ItemDataBound"
CellSpacing
=
"0"
DataSourceID
=
"sqlMaterialCategoriesCombined"
GridLines
=
"None"
>
<
MasterTableView
DataSourceID
=
"sqlMaterialCategoriesCombined"
>
<
CommandItemSettings
ExportToPdfText
=
"Export to PDF"
></
CommandItemSettings
>
<
RowIndicatorColumn
Visible
=
"True"
FilterControlAltText
=
"Filter RowIndicator column"
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
Visible
=
"True"
FilterControlAltText
=
"Filter ExpandColumn column"
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"MaterialCategoryID"
DataType
=
"System.Int32"
FilterControlAltText
=
"Filter MaterialCategoryID column"
HeaderText
=
"MaterialCategoryID"
ReadOnly
=
"True"
SortExpression
=
"MaterialCategoryID"
UniqueName
=
"MaterialCategoryID"
Visible
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"ParentMaterialID"
DataType
=
"System.Int32"
FilterControlAltText
=
"Filter ParentMaterialID column"
HeaderText
=
"ParentMaterialID"
ReadOnly
=
"True"
SortExpression
=
"ParentMaterialID"
UniqueName
=
"ParentMaterialID"
Visible
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"ID"
FilterControlAltText
=
"Filter ID column"
HeaderText
=
"ID"
UniqueName
=
"ID"
>
<
HeaderStyle
Width
=
"30px"
/>
<
ItemStyle
Width
=
"30px"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Category"
FilterControlAltText
=
"Filter Category column"
HeaderText
=
"Category"
ReadOnly
=
"True"
SortExpression
=
"Category"
UniqueName
=
"Category"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
FilterControlAltText
=
"Filter Item column"
HeaderText
=
"Item"
UniqueName
=
"Item"
>
<
ItemTemplate
>
<
telerik:RadComboBox
ID
=
"rcbItem"
runat
=
"server"
DataTextField
=
"MaterialName"
DataValueField
=
"MaterialID"
Width
=
"300"
Skin
=
"Windows7"
AllowCustomText
=
"True"
EmptyMessage
=
"Please select an item from the list"
OnSelectedIndexChanged
=
"rcbItem_SelectedIndexChanged"
>
</
telerik:RadComboBox
>
</
ItemTemplate
>
<
HeaderStyle
Width
=
"300px"
/>
<
ItemStyle
Width
=
"300px"
/>
</
telerik:GridTemplateColumn
>
</
Columns
>
<
EditFormSettings
>
<
EditColumn
FilterControlAltText
=
"Filter EditCommandColumn column"
>
</
EditColumn
>
</
EditFormSettings
>
</
MasterTableView
>
<
FilterMenu
EnableImageSprites
=
"False"
>
<
WebServiceSettings
>
<
ODataSettings
InitialContainerName
=
""
>
</
ODataSettings
>
</
WebServiceSettings
>
</
FilterMenu
>
<
HeaderContextMenu
CssClass
=
"GridContextMenu GridContextMenu_Default"
>
<
WebServiceSettings
>
<
ODataSettings
InitialContainerName
=
""
>
</
ODataSettings
>
</
WebServiceSettings
>
</
HeaderContextMenu
>
</
telerik:RadGrid
>
</
fieldset
>
<
asp:SqlDataSource
ID
=
"sqlMaterialCategoriesCombined"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:KPortal %>"
SelectCommand="Exec GetMaterialCategoriesCombined @ServiceTypeID=@ServiceTypeID">
<
SelectParameters
>
<
asp:ControlParameter
ControlID
=
"rcbServiceType"
Name
=
"ServiceTypeID"
PropertyName
=
"SelectedValue"
/>
</
SelectParameters
>
</
asp:SqlDataSource
>
<
asp:SqlDataSource
ID
=
"sqlServiceType"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:KPortal %>"
OnSelecting="sqlServiceType_Selecting" SelectCommand="SELECT ServiceType.ServiceTypeID, ServiceType.ServiceType FROM [User] INNER JOIN ManufacturerUser ON [User].UserID = ManufacturerUser.UserID INNER JOIN ManufacturerServiceType INNER JOIN ServiceType ON ManufacturerServiceType.ServiceTypeID = ServiceType.ServiceTypeID ON ManufacturerUser.ManufacturerID = ManufacturerServiceType.ManufacturerID WHERE (ServiceType.ServiceReferenceData = 1) AND (ServiceType.ServiceTypeActive = 1) AND ([User].Login = @LoginID) AND (ManufacturerServiceType.ServiceStatus = 'A')">
<
SelectParameters
>
<
asp:Parameter
Name
=
"LoginID"
/>
</
SelectParameters
>
</
asp:SqlDataSource
>
<
asp:SqlDataSource
ID
=
"sqlUnits"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:KPortal %>"
OnSelecting="sqlUnits_Selecting" SelectCommand="SELECT Units.UnitID, Units.UnitName FROM ManufacturerUser INNER JOIN Manufacturer ON ManufacturerUser.ManufacturerID = Manufacturer.ManufacturerID INNER JOIN [User] ON ManufacturerUser.UserID = [User].UserID INNER JOIN Units ON Manufacturer.UnitSystem = Units.UnitSystem WHERE (Units.UnitType = 'length') AND ([User].Login = @LoginID) AND (Units.MajorUnit = 1)">
<
SelectParameters
>
<
asp:Parameter
Name
=
"LoginID"
/>
</
SelectParameters
>
</
asp:SqlDataSource
>
<
telerik:RadNotification
ID
=
"rnChangesSaved"
runat
=
"server"
Width
=
"300"
Height
=
"100"
Animation
=
"Fade"
EnableRoundedCorners
=
"true"
EnableShadow
=
"true"
Title
=
"Test Project"
Text
=
"Your questionary answers have been saved"
Style
=
"z-index: 35000"
Position
=
"Center"
>
</
telerik:RadNotification
>
<
asp:SqlDataSource
ID
=
"sqlStats"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:KPortal %>"
OnSelecting="sqlStats_Selecting" SelectCommand="Exec GetTestProjectPriceStats @ServiceTypeID = @ServiceTypeID , @LoginID = @LoginID">
<
SelectParameters
>
<
asp:ControlParameter
ControlID
=
"rcbServiceType"
Name
=
"ServiceTypeID"
PropertyName
=
"SelectedValue"
/>
<
asp:Parameter
Name
=
"LoginID"
/>
</
SelectParameters
>
</
asp:SqlDataSource
>
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel1"
runat
=
"server"
Skin
=
"Default"
>
</
telerik:RadAjaxLoadingPanel
>
<
telerik:RadAjaxManager
runat
=
"server"
DefaultLoadingPanelID
=
"RadAjaxLoadingPanel1"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"rbShowPrice"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"rgStats"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"rnChangesSaved"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"rbSaveProject"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"rgStats"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"rnChangesSaved"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
</
asp:Content
>
The code behind:
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
Telerik.Web.UI;
using
System.Xml;
using
System.Text;
using
System.Data.SqlClient;
using
System.Configuration;
namespace
kukulika.Manufacturer
{
public
partial
class
TestPrices : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
}
protected
void
sqlServiceType_Selecting(
object
sender, SqlDataSourceSelectingEventArgs e)
{
e.Command.Parameters[0].Value = Page.User.Identity.Name.ToString().ToLower();
}
protected
void
rgTestProject_ItemDataBound(
object
sender, GridItemEventArgs e)
{
if
(e.Item
is
GridDataItem)
{
GridDataItem item = e.Item
as
GridDataItem;
RadComboBox rcbItem = item.FindControl(
"rcbItem"
)
as
RadComboBox;
string
MaterialCategoryID = item[
"MaterialCategoryID"
].Text.ToString();
string
ParentMaterialID = item[
"ParentMaterialID"
].Text.ToString();
rcbItem.EmptyMessage =
"Please select "
+ item[
"Category"
].Text.ToString();
SqlDataSource sqlDS =
new
SqlDataSource();
sqlDS.ConnectionString = ConfigurationManager.ConnectionStrings[
"KPortal"
].ConnectionString;
sqlDS.SelectCommand =
"Exec GetManufacturerTestProjectItem @MaterialCategoryID = "
+ MaterialCategoryID +
",@ParentMaterialID="
+ParentMaterialID+
",@LoginID='"
+ Page.User.Identity.Name.ToString().ToLower() +
"'"
;
rcbItem.DataSource = sqlDS;
SqlConnection conn =
new
SqlConnection(sqlDS.ConnectionString);
SqlCommand command =
new
SqlCommand(sqlDS.SelectCommand, conn);
conn.Open();
try
{
SqlDataReader Questionary = command.ExecuteReader();
while
(Questionary.Read())
{
if
(Questionary[
"SelectedItem"
].ToString() !=
"0"
)
{
rcbItem.SelectedValue = Questionary[
"SelectedItem"
].ToString();
}
}
}
finally
{
conn.Close();
}
rcbItem.DataBind();
}
}
protected
void
rcbItem_SelectedIndexChanged(
object
sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
}
protected
void
SaveProject()
{
//Validate Selection
bool
res =
true
;
foreach
(GridDataItem item
in
rgTestProject.Items)
{
RadComboBox rcbItem = item.FindControl(
"rcbItem"
)
as
RadComboBox;
if
(rcbItem.SelectedValue.ToString() ==
""
)
{
item[
"Category"
].ForeColor = System.Drawing.Color.Red;
res =
false
;
}
else
{
item[
"Category"
].ControlStyle.Reset();
}
}
if
(res ==
false
)
{
rnChangesSaved.Text =
"Please select items for your test project"
;
rnChangesSaved.Show();
return
;
}
//Save Project Details
var sb =
new
StringBuilder();
XmlWriter xw = XmlWriter.Create(sb);
xw.WriteStartElement(
"ManufacturerTestProject"
);
xw.WriteAttributeString(
"ServiceTypeID"
,rcbServiceType.SelectedValue.ToString());
xw.WriteAttributeString(
"DerrivedMeasurement"
, rtbLinerFootage.Text.ToString());
xw.WriteAttributeString(
"UnitID"
, rcbUnits.SelectedValue.ToString());
xw.WriteStartElement(
"Materials"
);
if
(rgTestProject.Items.Count==0)
return
;
foreach
(GridDataItem item
in
rgTestProject.Items)
{
RadComboBox rcbItem = item.FindControl(
"rcbItem"
)
as
RadComboBox;
xw.WriteStartElement(
"Material"
);
xw.WriteAttributeString(
"MaterialID"
, rcbItem.SelectedValue.ToString());
xw.WriteEndElement();
}
xw.WriteEndElement();
xw.WriteEndDocument();
xw.Flush();
xw.Close();
string
FinalXML = sb.ToString().Substring(sb.ToString().IndexOf(
">"
) + 1);
string
ConnString = ConfigurationManager.ConnectionStrings[
"KPortal"
].ConnectionString;
SqlConnection conn =
new
SqlConnection(ConnString);
SqlCommand command =
new
SqlCommand(
"Exec SaveManufacturerTestProject @ProjectDetails = @ProjectDetails, @LoginID = @LoginID"
, conn);
command.Parameters.AddWithValue(
"ProjectDetails"
, FinalXML);
command.Parameters.AddWithValue(
"LoginID"
, Page.User.Identity.Name.ToString().ToLower());
conn.Open();
try
{
command.ExecuteNonQuery();
}
finally
{
conn.Close();
}
}
protected
void
rbSaveProject_Click(
object
sender, EventArgs e)
{
SaveProject();
rnChangesSaved.Text =
"Your test project have been saved"
;
rnChangesSaved.Show();
}
protected
void
sqlUnits_Selecting(
object
sender, SqlDataSourceSelectingEventArgs e)
{
e.Command.Parameters[0].Value = Page.User.Identity.Name.ToString().ToLower();
}
protected
void
rbShowPrice_Click(
object
sender, EventArgs e)
{
SaveProject();
rgStats.Rebind();
}
protected
void
sqlStats_Selecting(
object
sender, SqlDataSourceSelectingEventArgs e)
{
e.Command.Parameters[1].Value = Page.User.Identity.Name.ToString().ToLower();
}
}
}