The server I'm developing on is running IIS 7.5, and my company uses Internet Explorer 8. In my program, I have a series of steps that a user has to go through in sequence. As one step is completed (via a button click), another step loads. The steps are each in Panels, and I use a RadAjaxManager to update the next panel on button clicks so that the next panel is made visible. The odd problem that I'm having right now is that whenever the next panel loads, the first RadNumericTextBox within the newly loaded panel will not hold the value typed into it. For example, if, once the text box loads, the user types "100" and goes to the next text box, "100" will stay in the box, but if I were to try to find its value server-side, it would be blank. If i were to click on the text box again, the value "100" will disappear. Upon typing in the value again, it will change to "100.00" like it's supposed to whenever it loses focus, and the value will be available server-side. This happens randomly, but if it does happen, it will only happen on the first time and on the first box. Any help is much appreciated.
Here is my Markup:
Here is my server-side code:
Thanks,
Aaron
Here is my Markup:
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
</
telerik:RadScriptManager
>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"lookupButton"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"orderPanel"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"errorLabel"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"countPanel"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"orderCount"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"amountPanel"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"inputButton"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"amountPanel"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"amountList"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"errorLabel"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"printButton"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"errorLabel"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"printButton"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel1"
runat
=
"server"
Skin
=
"WebBlue"
/>
<
asp:Panel
ID
=
"orderPanel"
runat
=
"server"
DefaultButton
=
"lookupButton"
>
<
fieldset
>
<
legend
>Order Information</
legend
>
<
table
>
<
tr
>
<
td
align
=
"left"
><
telerik:RadNumericTextBox
ID
=
"orderNum"
Width
=
"150px"
runat
=
"server"
MaxLength
=
"6"
NumberFormat-DecimalDigits
=
"0"
NumberFormat-GroupSeparator
=
""
DataType
=
"Int32"
></
telerik:RadNumericTextBox
></
td
>
<
td
align
=
"left"
><
asp:Button
ID
=
"lookupButton"
runat
=
"server"
Text
=
"Look Up Order"
OnClick
=
"LookupButton_Click"
/></
td
>
</
tr
>
<
tr
>
<
td
align
=
"left"
><
asp:Label
ID
=
"orderSalesText"
runat
=
"server"
Font-Size
=
"Small"
Font-Bold
=
"true"
Text
=
"Money Order Amount: "
></
asp:Label
></
td
>
<
td
align
=
"left"
><
asp:Label
ID
=
"orderSalesValue"
runat
=
"server"
Font-Size
=
"Small"
Font-Bold
=
"true"
></
asp:Label
></
td
>
</
tr
>
<
tr
>
<
td
align
=
"left"
><
asp:Label
ID
=
"orderFeesText"
runat
=
"server"
Font-Size
=
"Small"
Font-Bold
=
"true"
Text
=
"Money Order Fees: "
></
asp:Label
></
td
>
<
td
align
=
"left"
><
asp:Label
ID
=
"orderFeesValue"
runat
=
"server"
Font-Size
=
"Small"
Font-Bold
=
"true"
></
asp:Label
></
td
>
</
tr
>
</
table
>
</
fieldset
>
</
asp:Panel
>
<
br
/>
<
br
/>
<
asp:Panel
ID
=
"logPanel"
runat
=
"server"
>
</
asp:Panel
>
<
asp:Panel
ID
=
"countPanel"
runat
=
"server"
DefaultButton
=
"inputButton"
Visible
=
"false"
>
<
fieldset
>
<
legend
>Total Money Orders</
legend
>
<
table
>
<
tr
>
<
td
align
=
"left"
><
telerik:RadNumericTextBox
ID
=
"orderCount"
Width
=
"150px"
runat
=
"server"
MaxLength
=
"2"
NumberFormat-DecimalDigits
=
"0"
NumberFormat-GroupSeparator
=
""
DataType
=
"Int32"
></
telerik:RadNumericTextBox
></
td
>
<
td
align
=
"left"
><
asp:Button
ID
=
"inputButton"
runat
=
"server"
Text
=
"Enter Count"
OnClick
=
"InputButton_Click"
/></
td
>
</
tr
>
</
table
>
</
fieldset
>
</
asp:Panel
>
<
br
/>
<
br
/>
<
asp:Panel
ID
=
"amountPanel"
runat
=
"server"
Visible
=
"false"
DefaultButton
=
"printButton"
>
<
telerik:RadListView
ID
=
"amountList"
runat
=
"server"
ItemPlaceholderID
=
"amountPlaceHolder"
>
<
LayoutTemplate
>
<
fieldset
>
<
legend
>Money Order Amounts</
legend
>
<
asp:Panel
ID
=
"amountPlaceHolder"
runat
=
"server"
></
asp:Panel
>
</
fieldset
>
</
LayoutTemplate
>
<
ItemTemplate
>
<
center
>
<
table
>
<
tr
>
<
td
align
=
"right"
><
asp:Label
ID
=
"amountLabel"
runat
=
"server"
Text="<%# Container.DataItem.ToString() %>" Font-Bold="true" Font-Size="Small"></
asp:Label
></
td
>
<
td
align
=
"left"
><
telerik:RadNumericTextBox
ID
=
"amountBox"
Width
=
"150px"
runat
=
"server"
NumberFormat-DecimalDigits
=
"2"
DataType
=
"double"
></
telerik:RadNumericTextBox
></
td
>
</
tr
>
</
table
>
</
center
>
</
ItemTemplate
>
</
telerik:RadListView
>
<
br
/>
<
br
/>
<
center
>
<
asp:CheckBox
ID
=
"suspFlag"
runat
=
"server"
/><
asp:Label
runat
=
"server"
ID
=
"suspText"
Text
=
"This order is suspicious"
Font-Bold
=
"true"
Font-Size
=
"Small"
></
asp:Label
>
<
br
/>
<
asp:Button
ID
=
"printButton"
runat
=
"server"
Text
=
"Print Money Orders"
OnClick
=
"PrintButton_Click"
/>
</
center
>
</
asp:Panel
>
Here is my server-side code:
public
partial
class
MoneyOrder_Create : System.Web.UI.Page
{
ACROrder order = ACRFunctions.Order;
int
moneyOrderCount = ACRFunctions.OrderCount;
protected
void
Page_Load(
object
sender, EventArgs e)
{
((AppMasterPage)Master).verNum =
"3.5"
;
((AppMasterPage)Master).visibleHome =
true
;
((AppMasterPage)Master).AppName =
"Money Order Creation"
;
((AppMasterPage)Master).visibleBreadCrum =
true
;
((AppMasterPage)Master).subMenuName = navLastMenu.GetMenuLineApps(navLastMenu.GetPreviousMenuID(Convert.ToInt32(Session[
"SessionMenuID"
])));
if
(Request.QueryString[
"error"
] !=
null
)
errorLabel.Text = Request.QueryString[
"error"
];
}
protected
void
LookupButton_Click(
object
sender, EventArgs e)
{
order = ACRFunctions.GetACROrder(Convert.ToInt32(orderNum.Text),
true
);
if
(order.Order_No == -1)
SetLookupText(
"Cannot Find Order in ACR"
,
""
,
""
);
else
{
if
(ACRFunctions.OrderIsMoneyOrder(order))
{
if
(!ACRFunctions.OrderIsUsed(order))
{
SetLookupText(
""
, ACRFunctions.GetMoneyOrderSum(order).ToString(
"C"
), ACRFunctions.GetMoneyOrderFees(order).ToString(
"C"
));
SetFocus(orderCount);
ACRFunctions.Order = order;
countPanel.Visible =
true
;
}
else
SetLookupText(
"This ACR Order has already been used to print money orders"
,
""
,
""
);
}
else
SetLookupText(
"Not a Valid Money Order Transaction"
,
""
,
""
);
}
}
public
void
SetLookupText(
string
errorText,
string
salesText,
string
feesText)
{
errorLabel.Text = errorText;
orderSalesValue.Text = salesText;
orderFeesValue.Text = feesText;
if
(salesText ==
""
)
{
countPanel.Visible =
false
;
amountPanel.Visible =
false
;
}
}
protected
void
InputButton_Click(
object
sender, EventArgs e)
{
if
(
string
.IsNullOrEmpty(orderCount.Text))
{
errorLabel.Text =
"You Must Enter a Count"
;
return
;
}
else
{
moneyOrderCount = Convert.ToInt32(orderCount.Text);
if
(moneyOrderCount <= 0)
{
errorLabel.Text =
"You Must Enter a Positive Number"
;
amountList.DataSource =
null
;
return
;
}
errorLabel.Text =
""
;
amountPanel.Visible =
true
;
ArrayList list =
new
ArrayList();
for
(
int
i = 0; i < moneyOrderCount; i++)
{
list.Add(
"Amount "
+ (i + 1) +
": "
);
}
amountList.DataSource = list;
ACRFunctions.OrderCount = moneyOrderCount;
}
}
protected
void
PrintButton_Click(
object
sender, EventArgs e)
{
List<
decimal
> amounts =
new
List<
decimal
>();
foreach
(var item
in
amountList.Items)
{
if
(
string
.IsNullOrEmpty(((item.FindControl(
"amountBox"
)
as
RadNumericTextBox).Text)))
{
errorLabel.Text =
"You must enter an amount for each money order. Change the count if you entered too many."
;
return
;
}
else
if
(Convert.ToDecimal((item.FindControl(
"amountBox"
)
as
RadNumericTextBox).Text) <= 0)
{
errorLabel.Text =
"Money Order Amounts Must Be Greater than Zero."
;
return
;
}
else
amounts.Add(Convert.ToDecimal((item.FindControl(
"amountBox"
)
as
RadNumericTextBox).Text));
}
Printer printer =
new
Printer();
string
error = printer.PrintMoneyOrders(amounts, ACRFunctions.Order, suspFlag.Checked, Session[
"SessionUserNum"
].ToString(), Request.ServerVariables[
"REMOTE_ADDR"
]);
if
(!
string
.IsNullOrEmpty(error))
errorLabel.Text = error;
else
errorLabel.Text =
"Print Successful"
;
}
}
Thanks,
Aaron