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

Can't get the radinputmanager in javascript.

4 Answers 102 Views
Input
This is a migrated thread and some comments may be shown as answers.
Wai Loon Ho
Top achievements
Rank 1
Wai Loon Ho asked on 19 Apr 2010, 10:59 AM

Hi,
I have develop 2 screen which is quite similiar.
These screen allow user to enter some value in the textboxes given and and a RadInputManager to validate the data inputed.
1 screen is working fine but 1 screen are not.
The screen which is not working, is because of the javascript not able to get the RadInputManager instance.
This screen has 1 textbox only, this textbox will have different validation depends on the different parameter passed in.
Each parameter will use different validation for the textbox.

Below are my codes, please advice.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="~/Transaction/TransactionUpdate.aspx.cs" 
    Inherits="Transaction.TransactionUpdate" %> 
 
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %> 
<!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></title>  
    <style type="text/css" media="all">  
        @import "/css/standard.css";  
    </style> 
      
<meta name="ROBOTS" content="NOINDEX, NOFOLLOW" /><meta http-equiv="PRAGMA" content="NO-CACHE" /><meta http-equiv="CACHE-CONTROL" content="NO-CACHE" /><meta http-equiv="EXPIRES" content="-1" /> 
    <script src="/js/jquery-1.2.6.min.js" type="text/javascript"></script> 
    <script src="/js/common.js" type="text/javascript"></script> 
</head> 
<body> 
    <form id="form1" runat="server" autocomplete="off">  
        <telerik:RadFormDecorator ID="RadFormDecorator1" runat="server" DecoratedControls="Default, Label" /> 
        <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server">  
        </telerik:RadAjaxLoadingPanel> 
        <telerik:RadWindowManager ID="radWindowManager" runat="server">  
        </telerik:RadWindowManager> 
        <asp:ScriptManager ID="ScriptManager1" runat="server">  
        </asp:ScriptManager> 
        <script language="javascript" type="text/javascript">  
            Telerik.Web.UI.RadWindowUtils.Localization =  
            {  
                 
                "Close": '<asp:Literal ID="radClose" runat="server" Text="<%$Resources:Button, btnClose%>" />',  
                "OK": '<asp:Literal ID="radOk" runat="server" Text="<%$Resources:Button, btnOk%>" />',  
                "Cancel": '<asp:Literal ID="radCancel" runat="server" Text="<%$Resources:Button, btnCancel%>" />',  
                "Yes": '<asp:Literal ID="radYes" runat="server" Text="<%$Resources:Common, rbtnYes%>" />',  
                "No": '<asp:Literal ID="radNo" runat="server" Text="<%$Resources:Common, rbtnNo%>" />'  
            };  
        </script> 
        <telerik:RadInputManager ID="radMgr" runat="server">  
            <telerik:TextBoxSetting BehaviorID="text">  
                <Validation IsRequired="true" /> 
                <TargetControls> 
                    <telerik:TargetInput ControlID="txtNewValue" /> 
                </TargetControls> 
            </telerik:TextBoxSetting> 
            <telerik:NumericTextBoxSetting BehaviorID="numeric" MinValue="0" MaxValue="999999">  
                <Validation IsRequired="true" /> 
                <TargetControls> 
                    <telerik:TargetInput ControlID="txtNewValue" /> 
                </TargetControls> 
            </telerik:NumericTextBoxSetting> 
        </telerik:RadInputManager> 
        <telerik:RadScriptBlock ID="scriptBlock1" runat="server">  
            <script language="javascript" type="text/javascript">  
                function GetRadWindow()  
                {  
                    var oWindow = null;  
                    if (window.radWindow) oWindow = window.radWindow;  
                    else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;  
                    return oWindow;  
                }  
 
                function PopulateData()  
                {  
                    var oObject = GetRadWindow().argument;  
                    document.getElementById('hdnTransactionId').value = oObject.TransactionId;  
                    document.getElementById('hdnValueType').value = oObject.ValueType;  
                    document.getElementById('hdnOldValue').value = oObject.OldValue;  
                    document.getElementById('hdnOriginalValue').value = oObject.OriginalValue;  
                    $("#spanOriginalValue").text(oObject.OldValue);  
 
                    $("#spanTitle").text('<asp:Literal ID="ltrlUpdateTransaction" runat="server" Text="<%$ Resources:ltrlUpdateTransaction%>"></asp:Literal>');  
                    $("#spanOriginal").text('<asp:Literal ID="ltrlOriginal" runat="server" Text="<%$ Resources:ltrlOriginal%>"></asp:Literal>');  
                    $("#spanNewVaue").text('<asp:Literal ID="ltrlUpdated" runat="server" Text="<%$ Resources:ltrlUpdated%>"></asp:Literal>');  
                          
                    if (oObject.ValueType == 'ValueType1')  
                    {  
                        document.getElementById('txtNewValue').setAttribute('maxLength', "6");  
                    }  
                    else if (oObject.ValueType == 'ValueType2')  
                    {  
                        document.getElementById('txtNewValue').setAttribute('maxLength', "10");  
                    }  
                    SetMandatory(oObject.ValueType);  
                }  
                  
                function Close(valueType, newValue)  
                {  
                    var arg = new Object();  
                    arg.ValueType = valueType;  
                    arg.NewValue = newValue;  
                     
                    var oWnd = GetRadWindow();  
                     
                    oWnd.close(arg);  
                }  
 
                function SetMandatory(valueType)  
                {  
                    if (IsInputManagerValid("<%=radMgr.ClientID %>"))   
                    {  
                        var im = $find("<%=radMgr.ClientID %>");  
                        var text = im.get_inputSettings('text');  
                        var numeric = im.get_inputSettings('numeric');  
                        if (valueType == 'ValueType1')  
                        {  
                            text.set_isRequired(false);  
                            numeric.set_isRequired(true);  
                        }  
                        else if (valueType == 'ValueType2')  
                        {  
                            text.set_isRequired(true);  
                            numeric.set_isRequired(false);  
                        }  
                    }  
                }  
 
                $(document).ready(function()   
                {  
                    PopulateData();  
                });  
            </script> 
        </telerik:RadScriptBlock>   
        <telerik:RadAjaxPanel ID="ajaxPnlTransactionUpdate" runat="server" EnableEmbeddedScripts="true" LoadingPanelID="RadAjaxLoadingPanel1">    
            <div id="divUpdateTransaction" runat="server">  
                <table width="98%" cellpadding="5px">  
                    <tr> 
                        <td> 
                            <div> 
                                <h2> 
                                    <span id="spanTitle"><asp:Literal ID="ltrlTitle" runat="server" Text="Update Transaction"></asp:Literal></span>  
                                </h2> 
                                <div> 
                                    <table width="98%">  
                                        <tr> 
                                            <td style="width: 70%">  
                                                <span id="spanOriginal"><asp:Literal ID="ltrlOriginal" runat="server"></asp:Literal></span>  
                                            </td> 
                                            <td style="width: 30%">  
                                                <span id="spanOriginalValue"><asp:Literal ID="ltrlOriginalValue" runat="server" Text=""></asp:Literal></span>  
                                            </td> 
                                        </tr> 
                                        <tr> 
                                            <td style="width: 70%">  
                                                <span id="spanNewVaue"><asp:Literal ID="ltrlNewVaue" runat="server"></asp:Literal></span>  
                                            </td> 
                                            <td style="width: 30%">  
                                                <asp:TextBox ID="txtNewValue" runat="server" Width="80px" MaxLength="10"></asp:TextBox> 
                                            </td> 
                                        </tr> 
                                    </table> 
                                </div> 
                                <div class="clear">  
                                    &nbsp;  
                                </div> 
                                <div id="divButton" runat="server" style="width:90%">  
                                    <class="buttons">  
                                        <asp:Button ID="btnSave" runat="server" Text="<%$ Resources:Button, btnSave %>" OnClick="btnSave_OnClick" /> 
                                        <asp:Button ID="btnCancel" runat="server" Text="<%$ Resources:Button, btnCancel %>" OnClientClick="GetRadWindow().close()" /> 
                                    </p> 
                                </div> 
                                <div id="hdnHidden">  
                                    <asp:HiddenField ID="hdnTransactionId" runat="server" /> 
                                    <asp:HiddenField ID="hdnValueType" runat="server" /> 
                                    <asp:HiddenField ID="hdnOldValue" runat="server" /> 
                                    <asp:HiddenField ID="hdnOriginalValue" runat="server" /> 
                                    <asp:HiddenField ID="hdnTimeStampId" runat="server" /> 
                                </div> 
                            </div> 
                        </td> 
                    </tr> 
                </table> 
            </div> 
        </telerik:RadAjaxPanel> 
    </form> 
</body> 
</html> 
 


using System;  
using System.Collections;  
using System.Collections.Generic;  
using System.Configuration;  
using System.Data;  
using System.Web;  
using System.Web.Security;  
using System.Web.UI;  
using System.Web.UI.HtmlControls;  
using System.Web.UI.WebControls;  
using System.Web.UI.WebControls.WebParts;  
using System.Xml.Linq;  
using Telerik.Web.UI;  
 
namespace Transaction  
{  
    public partial class TransactionUpdate : BasePage  
    {
        #region Variables  
        string TransactionDetailsLastUserId = "TransactionDetailsLastUserId";  
        string TransactionDetailsTimeStampId = "TransactionDetailsTimeStampId";
        #endregion  
 
        #region Event Handlers  
        protected void Page_Load(object sender, EventArgs e)  
        {  
        }  
 
        protected void btnSave_OnClick(object sender, EventArgs e)  
        {  
            try 
            {  
                string transactionID = hdnTransactionId.Value.ToString().Trim();  
                long? customerId = SessionManager.UserSettings.DataContext.CustomerID;  
                string valueType = hdnValueType.Value.ToString().Trim();  
                string oldValue = hdnOldValue.Value.ToString().Trim();  
                string newValue = txtNewValue.Text.ToString().Trim();  
                long userId = SessionManager.UserSettings.AppUserID;                  
                //call to DB to fetch the corresponding TimestampId and Last User ID  
                CommonFacade commonFacade = new CommonFacade();  
                DataSet dsValues = (DataSet)commonFacade.GetTimestampFromTransactionId(transactionID);  
                long lastUserId = string.IsNullOrEmpty(dsValues.Tables[0].Rows[0]["Last_UserId"].ToString()) ? 0 : Convert.ToInt64(dsValues.Tables[0].Rows[0]["Last_UserId"]);  
                byte[] oldTimeStampId = (byte[])dsValues.Tables[0].Rows[0]["Timestamp_Id"];  
                byte[] newTimeStampId = null;  
                if (!object.Equals(oldValue.ToString().Trim(), newValue.ToString().Trim()))  
                {  
                    ReportBiz report = new ReportBiz();  
                    newTimeStampId = report.TransactionValueUpdate(transactionID, valueType, newValue, userId, oldTimeStampId);  
                    Session[TransactionDetailsTimeStampId] = newTimeStampId;  
                    if (string.IsNullOrEmpty(newValue)) newValue = hdnOriginalValue.Value;  
                }  
 
                ScriptManager.RegisterStartupScript(Page, typeof(Page), "CloseWindow""<script type=\"text/javascript\">Close('" + valueType + "', '" + newValue + "');</script>"false);  
            }  
            catch (BusinessException ex)  
            {  
                this.ShowRadErrorAlert(ex.Key);  
            }  
        }
        #endregion  
    }  
}  
 

4 Answers, 1 is accepted

Sort by
0
Dimo
Telerik team
answered on 20 Apr 2010, 08:35 AM
Hi Wai Loon Ho,

Please use Sys.Application.add_load instead of $(document).ready

http://blogs.telerik.com/dimodimov/posts/08-12-13/don_t_use_body_onload_in_asp_net_ajax_websites.aspx

Regards,
Dimo
the Telerik team

Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
0
Wai Loon Ho
Top achievements
Rank 1
answered on 20 Apr 2010, 09:38 AM
Hi,
thanks for the reply.
i have tried the codes but i still getting null for im object.

        <telerik:RadScriptBlock ID="scriptBlock1" runat="server">  
            <script language="javascript" type="text/javascript">  
                Sys.Application.add_init(AppInit);   
                function AppInit()     
                {      
                    Sys.Application.add_load(PopulateData);    
                }   
 
                function GetRadWindow()  
                {  
                    var oWindow = null;  
                    if (window.radWindow) oWindow = window.radWindow;  
                    else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;  
                    return oWindow;  
                }  
 
                function PopulateData()  
                {  
                    var oObject = GetRadWindow().argument;  
                    document.getElementById('hdnTransactionId').value = oObject.TransactionId;  
                    document.getElementById('hdnValueType').value = oObject.ValueType;  
                    document.getElementById('hdnOldValue').value = oObject.OldValue;  
                    document.getElementById('hdnOriginalValue').value = oObject.OriginalValue;  
                    $("#spanOriginalValue").text(oObject.OldValue);  
 
                    $("#spanTitle").text('<asp:Literal ID="ltrlUpdateTransaction" runat="server" Text="<%$ Resources:ltrlUpdateTransaction%>"></asp:Literal>');  
                    $("#spanOriginal").text('<asp:Literal ID="ltrlOriginal" runat="server" Text="<%$ Resources:ltrlOriginal%>"></asp:Literal>');  
                    $("#spanNewVaue").text('<asp:Literal ID="ltrlUpdated" runat="server" Text="<%$ Resources:ltrlUpdated%>"></asp:Literal>');  
                          
                    if (oObject.ValueType == 'ValueType1')  
                    {  
                        document.getElementById('txtNewValue').setAttribute('maxLength'"6");  
                    }  
                    else if (oObject.ValueType == 'ValueType2')  
                    {  
                        document.getElementById('txtNewValue').setAttribute('maxLength'"10");  
                    }  
                    SetMandatory();  
                    //Sys.Application.add_load(SetMandatory);   
                    //SetMandatory(oObject.ValueType);  
                    Sys.Application.remove_load(PopulateData);   
                }  
                  
                function Close(valueType, newValue)  
                {  
                    var arg = new Object();  
                    arg.ValueType = valueType;  
                    arg.NewValue = newValue;  
                     
                    var oWnd = GetRadWindow();  
                     
                    oWnd.close(arg);  
                }  
 
                function SetMandatory()  
                {  
                    if (IsInputManagerValid("<%=radMgr.ClientID %>"))   
                    {  
                        var oObject = GetRadWindow().argument;  
                        var valueType = oObject.ValueType;  
                        var im = $find("<%=radMgr.ClientID %>");  
                        var text = im.get_inputSettings('text');  
                        var numeric = im.get_inputSettings('numeric');  
                        if (valueType == 'ValueType1')  
                        {  
                            text.set_isRequired(false);  
                            numeric.set_isRequired(true);  
                        }  
                        else if (valueType == 'ValueType2')  
                        {  
                            text.set_isRequired(true);  
                            numeric.set_isRequired(false);  
                        }  
                    }  
                }  
            </script>  
        </telerik:RadScriptBlock>   
 
0
Dimo
Telerik team
answered on 20 Apr 2010, 11:56 AM
Hello Wai Loon Ho,

The "im" variable contains the RadInputMaganager object when I run it locally. Please inspect and debug your code - the problem should be somewhere else. Send a complete demo if you need further assistance.

Greetings,
Dimo
the Telerik team

Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
0
Wai Loon Ho
Top achievements
Rank 1
answered on 20 Apr 2010, 02:39 PM
Hi there,
I manage to solve the issue.
Basically I should create 2 different text box (txtValueType1NewValue and txtValueType2NewValue).
Then the 2 InputSetting point to different text box.
This will solve my problem...

Thank for you help anyway... :)
Tags
Input
Asked by
Wai Loon Ho
Top achievements
Rank 1
Answers by
Dimo
Telerik team
Wai Loon Ho
Top achievements
Rank 1
Share this question
or