Exemplo n.º 1
0
        private void RegisterReturnScript()
        {
            using (LogGroup logGroup = LogGroup.Start("Registering EntitySelectDeliverer return script.", NLog.LogLevel.Debug))
            {
                string text = (string)WebControlUtilities.GetFieldValue(WebControlUtilities.FindControlRecursive(Page, TextControlID), "Text", typeof(String));

                StringBuilder builder = new StringBuilder();

                builder.Append("<script language='javascript' defer>\n");
                builder.Append("window.opener.AddItem_" + GetRequesterID() + "('" + EntityID + "', '" + WebUtilities.EncodeJsString(text) + "');\n");
                builder.Append("window.close();\n");


                builder.Append("</script>\n");


                if (!Page.ClientScript.IsClientScriptBlockRegistered("EntitySelectDelivererReturnScript"))
                {
                    Page.ClientScript.RegisterClientScriptBlock(typeof(EntitySelectDeliverer), "EntitySelectDelivererReturnScript", builder.ToString());
                }
                else
                {
                    LogWriter.Debug("Return script already registered.");
                }
            }
        }
Exemplo n.º 2
0
        private void RegisterScript()
        {
            string selectClientID = WebControlUtilities.FindControlRecursive(Page, EntitySelectControlID).ClientID;

            string url = CreateNavigateUrl();

            StringBuilder builder = new StringBuilder();

            NameValueCollection transferData = ParseTransferData();

            builder.Append("<script language='javascript' defer>\n");
            builder.Append("function GetData_" + ClientID + "(key){\n");

            foreach (string key in transferData.Keys)
            {
                Control control = WebControlUtilities.FindControlRecursive(Page, transferData[key]);
                if (control == null)
                {
                    throw new Exception("No control found with ID of '" + transferData[key] + "'.");
                }
                string clientID = control.ClientID;

                builder.Append("if (key == '" + WebUtilities.EncodeJsString(key) + "'){\n");
                builder.Append("	return document.getElementById('"+ clientID + "').value;\n");
                builder.Append("}\n");
            }
            builder.Append("}\n");


            string height = WindowHeight.ToString().Replace("px", "");
            string width  = WindowWidth.ToString().Replace("px", "");

            builder.Append("\n");
            builder.Append("function NewItem_" + ClientID + "(){\n");
            builder.Append("	var url = '"+ WebUtilities.EncodeJsString(CreateNavigateUrl()) + "';\n");
            builder.Append("	var settings = 'Location=0,Scrollbars=1,Height="+ height + ",Width=" + width + "';\n");

            builder.Append("	var win = window.open(url, 'AddItem_"+ Guid.NewGuid().ToString().Replace("-", "_") + "', settings);\n");

            // TODO: Check if the following line should be used instead of the one above. The one above makes every window
            // title unique so that new windows aren't prevented from opening (by ID being in use)
            // The following line uses a predictable title which is good for integration testing but means windows could be blocked from opening
            //builder.Append("	var win = window.open(url, 'AddItemTo" + EntityType + "', settings);\n");

            //builder.Append("	var url = " + CreateNavigateUrl() + "\n");

            builder.Append("}\n");

            builder.Append("\n");

            builder.Append(@"function AddItem_" + ClientID + @"(id, text){
			
							if (id == '"                             + Guid.Empty.ToString() + @"')
			                    alert('Cannot add item with Guid.Empty value.');
			
			                var newOption = document.createElement('option');
		                    newOption.value = id;
		                    newOption.text = text;
		                    newOption.selected = true;
		                    
		                    // Only used while debugging. Leave commented out
		                    //alert(id + ' - ' + text);

		                    var field = document.getElementById('"                     + selectClientID + @"')
		                    
		                    if (field == null)
		                        alert('"                         + selectClientID + @" field not found.');
		    
                            //field.appendChild(newOption)
                            
                            try {
							    field.add(newOption, null); // standards compliant; doesn't work in IE
							  }
							  catch(ex) {
							    field.add(newOption); // IE only
							  }

							}
							"                            );

            builder.Append("</script>\n");


            //if (!Page.ClientScript.IsClientScriptBlockRegistered("EntitySelectRequesterScript"))
            Page.ClientScript.RegisterClientScriptBlock(typeof(EntitySelectRequester), "EntitySelectRequesterScript", builder.ToString());
        }
Exemplo n.º 3
0
 static public bool IsType(Control field, Type type)
 {
     return(WebControlUtilities.IsType(field, type));
 }
Exemplo n.º 4
0
        private void RegisterScript()
        {
            using (LogGroup logGroup = LogGroup.Start("Registering EntitySelectDeliverer script.", NLog.LogLevel.Debug))
            {
                //string url = CreateNavigateUrl();

                StringBuilder builder = new StringBuilder();

                builder.Append("<script language='javascript' defer>\n");
                builder.Append("function AcceptTransfer_" + ClientID + "(){\n");

                if (TransferFields != String.Empty)
                {
                    LogWriter.Debug("Transfer fields: " + TransferFields);

                    foreach (string fieldID in TransferFields.Split(','))
                    {
                        if (fieldID != String.Empty)
                        {
                            LogWriter.Debug("Transfer fields include: " + fieldID);

                            Control control = WebControlUtilities.FindControlRecursive(Page, fieldID);
                            if (control == null)
                            {
                                throw new Exception("No control found with ID of '" + fieldID + "'.");
                            }
                            string clientID = control.ClientID;

                            builder.Append("var field = document.getElementById('" + clientID + "');\n");
                            builder.Append("if (field == null)\n");
                            builder.Append("alert('Field not found: " + clientID + "');\n");

                            builder.Append("field.value = GetTransferValue_" + ClientID + "('" + fieldID + "');\n");

                            builder.Append("\n");
                        }
                    }
                }
                else
                {
                    LogWriter.Debug("No transfer fields specified.");
                }

                builder.Append("}\n");


                builder.Append("\n");
                builder.Append("function GetTransferValue_" + ClientID + "(id){\n");
                builder.Append("	return window.opener.GetData_"+ GetRequesterID() + "(id);\n");
                builder.Append("}\n");

                builder.Append("</script>\n");


                //if (!Page.ClientScript.IsClientScriptBlockRegistered("EntitySelectDelivererScript"))
                Page.ClientScript.RegisterClientScriptBlock(typeof(EntitySelectDeliverer), "EntitySelectDelivererScript", builder.ToString());


                // Start up script

                StringBuilder startUpBuilder = new StringBuilder();
                startUpBuilder.Append("AcceptTransfer_" + ClientID + "();");
                Page.ClientScript.RegisterStartupScript(typeof(EntitySelectDeliverer), "EntitySelectDelivererStartUpScript", startUpBuilder.ToString(), true);
            }
        }
Exemplo n.º 5
0
 static public object GetFieldValue(Control field, string controlValuePropertyName, Type returnType)
 {
     return(WebControlUtilities.GetFieldValue(field, controlValuePropertyName, returnType));
 }