2010年11月10日 星期三

RadWindow Open Short Script

--- Caller

 <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"><script type="text/javascript">
    
      
        function rowEdit() {

            var radGridTable = $find("<%=RadGrid2.ClientID%>");
           
            if ( (radGridTable.get_masterTableView().get_dataItems().length) ==0 )
               {
                   alert("請選擇資料項目..");
                   return false;     
            }
     
            selectedItems =   radGridTable.get_masterTableView().get_selectedItems();
           
            if (selectedItems.length > 0) {
               // find Window Manager
               var manager = $find("<%=RadWindowManager1.ClientID%>");
               // find Window
               var window = manager.getWindowByName("RadWindow1");
               // find Grid Master Table
               var masterTable = $find("<%=RadGrid2.ClientID%>").get_masterTableView();

               // get the selected item
               var selectedItem = masterTable.get_selectedItems()[0];
              
               // extract the PK value
               var pk = masterTable.getCellByColumnUniqueName(selectedItem, "seq_no").innerHTML;
               // open the link
              
               window.setUrl("EquipForm.aspx?action=APPROVE&pk=" + pk);
               window.show();

               // avoid postback
               return false;
                 
            }
            else {
                alert("請選擇資料項目..");
                return false;     
            }


        }


        function rowEditSaved() {

            var radGridTable = $find("<%=RadGrid3.ClientID%>");
            if ((radGridTable.get_masterTableView().get_dataItems().length) == 0) {
                alert("請選擇資料項目..");               
                return false;
            }

            selectedItems = radGridTable.get_masterTableView().get_selectedItems();


            if (selectedItems.length > 0) {
               
                // find Window Manager
                var manager = $find("<%=RadWindowManager1.ClientID%>");
                // find Window
                var window = manager.getWindowByName("RadWindow2");
                // find Grid Master Table
                var masterTable = $find("<%=RadGrid3.ClientID%>").get_masterTableView();

                // get the selected item
                var selectedItem = masterTable.get_selectedItems()[0];

                // extract the PK value
                var pk = masterTable.getCellByColumnUniqueName(selectedItem, "seq_no").innerHTML;
                // open the link
               
                window.setUrl("EquipForm.aspx?action=SAVE&pk=" + pk);
                window.show();

                // avoid postback
               
                return false;


            }
            else {
                alert("請選擇資料項目..");
                return false;
            }
           
            return false;

        }

        function masterClientClose(sender, eventArgs) {

            var masterTable = $find("<%= RadGrid1.ClientID %>").get_masterTableView();
            masterTable.rebind();

            masterTable = $find("<%= RadGrid2.ClientID %>").get_masterTableView();
            masterTable.rebind();

        }


        function savedMasterClientClose(sender, eventArgs) {

            var masterTable = $find("<%= RadGrid3.ClientID %>").get_masterTableView();
            masterTable.rebind();

        }
       
        function masterClientShow(sender, eventArgs)
        {
       
          var masterTable = $find("<%= RadGrid2.ClientID %>").get_masterTableView();                       
          sender.argument = masterTable;

        }


        function masterSavedClientShow(sender, eventArgs) {

              var masterTable = $find("<%= RadGrid3.ClientID %>").get_masterTableView();
              sender.argument = masterTable;

        }
      
        function rowDBClick(sender, args) {          
           
            rowEdit();
       
        }

        function rowDBClickSaved(sender, args) {

            return rowEditSaved();

        }
    
       </script></telerik:RadCodeBlock>
      

<telerik:RadWindowManager ID="RadWindowManager1" runat="server" Skin="Outlook">
 
        <Windows>
              <telerik:RadWindow runat="server"  Behavior="Default" ID="RadWindow1"  Width="840px" Height="600px"
                InitialBehavior="None" Left="" Modal="True" NavigateUrl="" OnClientShow="masterClientShow" OnClientClose="masterClientClose"
                 Top="" VisibleStatusbar="false" ReloadOnShow="True" ShowContentDuringLoad="False"></telerik:RadWindow>
                
              <telerik:RadWindow runat="server"  Behavior="Default" ID="RadWindow2"  Width="840px" Height="600px"
                InitialBehavior="None" Left="" Modal="True" NavigateUrl="" OnClientShow="masterSavedClientShow" OnClientClose="savedMasterClientClose"
                 Top="" VisibleStatusbar="false" ReloadOnShow="True" ShowContentDuringLoad="False"></telerik:RadWindow>
                
                
        </Windows>
       
    </telerik:RadWindowManager>      
   
   
   
-- Callee

  <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
    <script type="text/javascript">
       
        function GetRadWindow()   {
            var oWindow = null;
            if (window.radWindow)
            oWindow = window.RadWindow; //Will work in Moz in all cases, including clasic dialog
            else if (window.frameElement.radWindow)
            oWindow = window.frameElement.radWindow;//IE (and Moz as well)
            return oWindow;
        }

        function CloseAndExitPopWindow(message) {
            GetRadWindow().Close();
            if (message.length != 0)
              alert(message);
            var masterTable = GetRadWindow().argument;
            masterTable.rebind();
           
        }
     
        function RefreshParentPage()
        {
            var masterTable = GetRadWindow().argument;
            masterTable.rebind();
        }
   
    </script>
    </telerik:RadCodeBlock>
   
    <telerik:RadWindowManager ID="RadWindowManager1" runat="server" Skin="Outlook" >
 
        <Windows>
              <telerik:RadWindow runat="server"  Behavior="Default" ID="RadWindow1"  Width="740px" Height="540px"
                InitialBehavior="None" Left="" Modal="True" NavigateUrl=""
                 Top="" VisibleStatusbar="false" ReloadOnShow="True" ShowContentDuringLoad="False"></telerik:RadWindow>
           
        </Windows>             

    </telerik:RadWindowManager>
       

2010年11月6日 星期六

Stop ImageButton Postback

JS 中配上這個"終結令"

function foo(event)
{
   // 第一行就堵起來
   if (window.event)
       window.event.returnValue = false;   // IE, Chrome
   else
       event.preventDefault();   // FF
   ...
 
}

在 aps.net

<asp:ImageButton runat="server" id="image" OnClientClick="foo(event)">
包准 Button, ImageButton 不會往後端送 Postback
煞車煞的住!

Web Free Button Makers

找到兩家還不錯的 Button Makers 的 Site
最重要是能支援中文 (Unicode)

首推 http://cooltext.com/Logo-Design?LogoID=22&Font=11096
支援中文外,還支援超過 30 幾種中文字體,超強!

其次 http://dabuttonfactory.com/
一般,中文字體只有一種,但是 Button 選項還不少

對了,補充一下
黃金的 RGB 是 211,168, 9 (百度說的)

2010年11月5日 星期五

RadAjaxManager 對 ASP:RadioButtonList 失效的解決方案

手上 Telerik 開發的版本是 2009.03 版本
(應該需要更新了吧! 有機會試看看新版本及 VS 2010是否解決了這個問題)

我需要利用 RadioButtonList 透過 Ajax 驅動 其他元件
但結果是
只有一次能被驅動
之後就不能再啟動對應的呼叫
試了幾次,受不了了

Google 之後
發現官方網站就有人也問這個問題
Telerik 說這是 MS AJAX 的問題
不過我還是需要解決方案, 理由太多是無濟於事滴 ~~

還好,有一篇討論到節決方案
http://www.telerik.com/community/forums/aspnet-ajax/ajax/the-radajaxmanager-do-not-fire-postback-with-radiobuttonlist.aspx

竟然是將 RadioButtonList 自己也加進去驅動對象, 真是個怪解..

2010年9月19日 星期日

Windows 2008遠端桌面連接數設定

Refer to internet link and it says:

Many times, you’ll find it necessary to have multiple connections to a Remote Desktop server, and by default, Windows Server 2008, Windows Server 2003, Window Vista, Windows XP, etc. limit the number of Remote Desktop Connections to 1 user. On Windows Server 2008, the Restrict Terminal Services users to a single remote session Group Policy setting determines whether you can connect to your existing physical console session. When this option is enabled, when logging on by default, you will be restricted to a single remote session.
Run "gpedit.msc."  This setting is available in the Computer Configuration\Administrative Templates\Windows Components\Terminal Services\Terminal Server\Connections node of the Local Group Policy Editor. You can also configure this setting in Terminal Services Configuration. The Restrict each user to a single session setting appears in Edit settings in the General section. Sometimes it is under "Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Connections\Restrict Rmote Desktop Services users to a single Remote Desktop Services session" to disabled
If you would like to have multiple simultaneous sessions for the same user, please uncheck this setting or set this group policy as Disabled.
For more information regarding Changes to remote administration in Windows Server 2008, please refer to the following KB article:
Changes to remote administration in Windows Server 2008
http://support.microsoft.com/kb/947723
sources:
Setting up multiple sessions by disablign group policy. http://www.techotopia.com/index.php/Configuring_Windows_Server_2008_Remote_Desktop_Administration#Running_Multiple_Remote_Desktops

Setting up multipe sessions using MMC Remote Desktops snap-in. http://i.nconspicuo.us/2008/11/20/enable-multiple-remote-desktop-connections-in-window-server-2008/

TM

2010年9月16日 星期四

Sybase Power Designer 連接 SQL Server 2008/ 2005


利用 Sybase Power Designer 工具來做 Schema Report 已經是專案中必走的路子
但最近發現 12, 15 版本連結 SQL Server 2008 總是會出現以下惱人的問題

Unable to list the tables.
[Microsoft][ODBC SQL Server Driver][SQL Server]陳述式無法準備。
SQLSTATE = 37000

後來 Google 了一下, 發現原來是資料庫相容的問題
利用以下 SP 可以調整相容度

EXEC SP_DBCMPTLEVEL '您的資料庫', '90'; 


80 是與 2000 相容
90 是與 2005 相容
100 是與 2008 相容

好像 Sybase PD 12, 15 與 SQL Server 2008 向容度不是很好
山不轉路轉, 調整一下相容度就可以解決這個問題



2010年9月11日 星期六

Visual Studio 2008 連結 SQL Server 2008

在資料設定連結時,系統出現以下錯誤


無法開啟到資料庫間的連接
"不支援此伺服器版本。僅支援 Microsoft SQL Server 2005 以上的伺服器。"


解決方式: 趕快去更新 Visual Studio 2008  Service Pack 1 吧 (約 900M)