window.returnValue rework for chrome - javascript

I have a java date picker and it is not passing back the value in chrome. I think its is due to the js using window.returnvalue. How would i fix this?
// Allow the browser to save/pass the date selected and close the window.
protected void calDate_SelectionChanged(object sender, System.EventArgs e)
{
string closeWindow = #"
<script language='javascript'>
window.returnValue='###date###';
window.close();
</script>";
closeWindow = closeWindow.Replace("###date###", calDate.SelectedDate.ToShortDateString());
ClientScript.RegisterStartupScript(this.GetType(), "CloseWindow", closeWindow);
}

Related

How can I call a javascript function from server side

I try to call a javascript function from an other c# function but I have an error in my console
Uncaught ReferenceError: updateState is not defined
.ascx file
<script>
function updateState(){
console.log("test")
}
</script>
<button runat="server" ID="Btn_Modify_state" onserverclick="Btn_Modify_state_Click">
<i class="fas fa-edit"></i>
</button>
.ascx.cs file
protected void Btn_Modify_state_Click(object sender, EventArgs e)
{
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "script", "updateState();", true);
}
I don't know how to resolve that issue someone have any idea ?
You may have forgotten to register the script. Try this different approach instead.
<script runat="server">
public void Page_Load(Object sender, EventArgs e)
{
// Define the name and type of the client script on the page.
String csName = "updateState";
Type csType = this.GetType();
// Get a ClientScriptManager reference from the Page class.
ClientScriptManager cs = Page.ClientScript;
// Check to see if the client script is already registered.
if (!cs.IsClientScriptBlockRegistered(csType, csName))
{
// If not, redefine your script
var csText = $"
<script type=\"text/javascript\">
function updateState(){
console.log("test")
}
</script>";
cs.RegisterClientScriptBlock(csType, csName, csText.ToString());
}
}
</script>
Source : https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.clientscriptmanager.registerclientscriptblock?view=netframework-4.8
The solution was to do that :
.ascx.cs
protected void Btn_Modify_state_Click(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "script", "<script type='text/javascript'>updateState();</script>");
}

window.onload = function() is not showing complete msg

windows.onload() popup is not showing entire message in chrome. In explorer popup is showing full message. How to resolve this issue in Chrome?
tried in explorer popup is showing full msg . how to resole this issue in chrome
string script = "window.onload = function() { alert('" + message + "'); };";
ClientScript.RegisterStartupScript(this.GetType(), "alert", script, true);
protected void Page_load(object sender,EventArgs e)
{
string message="hii";
Response.Write("<script type='text/javascript'>alert('"+message+"');</script>");
}
Try this one...

Javascript confirm dialog coming up twice; Jumping back after clicking Element

Beginner here, so please be gentle.
I'm trying to ask the User for confirmation. When he accepts, my javascript invokes a Button to run some code behind. The code behind will run a JavaScript function which alerts, just so I can see if it all works. What happens is, that after my first confirm() dialog, a second dialog appears. After confirming again, the code runs and my second JavaScript function confirms by alerting. But after I press okay on that, the whole thing jumps back to my first function and I get into a loop!
ASPX:
<script type = "text/javascript">
function ConfirmComputerOverwrite(ComputerName) {
if (confirm("Overwrite present computer " + ComputerName + " ?"))
{
}
else
{
}
document.getElementById("Test").click()
}
function allworkedout()
{
alert("asdf");
}
Code behind:
public string ComputerName = "";
protected void Page_Load(object sender, EventArgs e)
{
string ComputerName = "Computer1";
this.ComputerName = ComputerName;
StringBuilder sb = new StringBuilder();
sb.Append("ConfirmComputerOverwrite('" + ComputerName + "');");
ScriptManager.RegisterStartupScript(this, GetType(), "ConfirmComputerOverwrite", sb.ToString(), true);
}
protected void Test_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Append("allworkedout();");
ScriptManager.RegisterStartupScript(this, GetType(), "allworkedoutID", sb.ToString(), true);
}
Thanks in advance !
Unless you are using ajax, the whole page is reloaded after click, so your javascript is executed again, prompting for confirmation, etc...

Get Javascript Variable Value in Server Side Without Page Load

I am trying to get value of Javascript variable
on server side, but it always shows values on
second button click and I don't want to reload this page again
protected void Button1_Click(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "MessageBox", "<script language='javascript'>setValues();</script>");
Thread.Sleep(5000);
Response.Write(HiddenField1.Value);
}
Javascript Code . . . ..
<script type="text/javascript">
function setValues()
{
var abc = "thi is first";
document.getElementById('<%=HiddenField1.ClientID%>').value = abc;
}
</script>

Receive function parameters in javascript?

Is possible receive the parameters that were sent from the
IFrame code behind (id and pTmp) the javascript popup then send them to the page parent
Code IFrame
protected void btnConfirm_Click(object sender, EventArgs e)
{
EDPBLL = new EDPLogic();
int id = EDPBLL.Add(Convert.ToInt32(Request.QueryString["EDP"]), Convert.ToInt32(Session["userId"]), DateTime.Now, Convert.ToInt32(ddlPrensa.SelectedValue));
string numeroEDP = EDPBLL.generarNumeroEDP(id);
EDPBLL.UpdateEdpCode(id, numeroEDP);
Session["pEDPId"] = id;
Session["numeroEDP"] = numeroEDP;
int pTmp = 4;
ScriptManager.RegisterStartupScript(Page, GetType(), "Popup", "<script>Popup('"+id+"','"+pTmp+"')</script>", false);
}
The script simulates a click event of parent window
Code JavaScript .aspx
<script type="text/javascript">
function Popup() {
$("#MainContent_btnPrueba", window.parent.document).trigger("click");
}
</script>
Use this
<script type="text/javascript">
function Popup(var1, var2) {
$("#MainContent_btnPrueba", window.parent.document).trigger("click");
}
</script>

Categories