JQuery conflict with C# InnetHtml - c#

When adding the JQuery JS include the InnetHTML is not working:
My HTML code:
<%# Page Language="C#" AutoEventWireup="true" CodeFile="aaa.aspx.cs" Inherits="aaa" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile.structure-1.4.5.min.css"
/>
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<div id="ppdiv" runat="server">
</div>
</div>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" style="height: 26px" Text="Button" />
</form>
</body>
</html>
My C# code :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class aaa : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
ppdiv.InnerHtml = "aaa";
}
}
when include JQUery the InnetHTML is not working. Where is the error and how to fix it.
Thanks in advance

i believe it is because you are using runat="server" in head within which you add the jquery. jquery and javascript for client side, and runat="server" posts the data to server. remove runat="server" from head and check.

Related

I have problems getting this javascript + asp.net to work

i have this little proyect that brings a little window to take the data from the "modal" window to the main but i have problems putting in to work.
The index:
%# Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="WebTest.Index" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script type="text/javascript" src="Ventana.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:HiddenField ID="valor1" runat="server" />
<asp:HiddenField ID="valor2" runat="server" />
<asp:TextBox ID="txtIdRutPersona" runat="server"></asp:TextBox>
<asp:Button ID="btnAbrirPopup" runat="server" Text="Abrir" />
</div>
</form>
</body>
</html>
the .cs part of index:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebTest
{
public partial class Index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
btnAbrirPopup.Attributes.Add("onclick", "javascript:Asistencia('txtIdRutPersona');");
}
}
}
}
the "persona" window that is the page that bind the data to the index:
<%# Page Language="C#" AutoEventWireup="true" CodeBehind="Persona.aspx.cs" Inherits="WebTest.Persona" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script type="text/javascript" src="Ventana.js"></script>
<script type="text/javascript">
function cerrar()
{
self.close();
}
</script>
</head>
<body>
<form id="Buscar" method="post" runat="server">
<div>
<asp:TextBox ID="txtRut" runat="server"></asp:TextBox>
<asp:Button ID="btnOk" runat="server" Text="Aplicar" />
<asp:Button ID="btnCerrar" runat="server" Text="Cerrar" />
</div>
</form>
</body>
</html>
the .cs part of "persona":
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebTest
{
public partial class Persona : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["form"] = Request.QueryString["formname"];
ViewState["txtRut"] = Request.QueryString["txtRut"];
ViewState["postBack"] = Request.QueryString["postBack"];
btnOk.Attributes.Add("onClick", $"window.opener.SetCodigo({ViewState["form"]},{ViewState["txtRut"]},{ViewState["postBack"]})");
btnCerrar.Attributes.Add("onClick", "cerrar()");
}
}
}
}
and the js:
var VentanaOrigen;
function Asistencia(txtRut) {
popUp = window.open('Persona.aspx?formname=' + document.forms[0].name + '&txtRut=' + txtRut, '', 'width=430,height=300,left=200,top=150,resizable=yes,status=yes,scrollbars=yes');
}
function SetCodigo(formulario, txtIdRutPersona, IdRutPersona, IPostback) {
eval('var theform = document.' + formulario + ';');
VentanaOrigen.close();
theform.elements[txtIdRutPersona].value = IdRutPersona;
if (IPostback)
__doPostBack(txtIdRutPersona, '');
}
sorry to bother with the large text but im kinda frustated right now, thanks!
It's difficult what you're trying to achieve. I am guessing:
index.aspx has a button to load a popup (which is not modal)
The button passes in the ID of textbox txtIdRutPersona
Index.aspx
<input type="button" value="Abrir" onclick="Asistencia('<%= txtIdRutPersona.ClientID %>')" />
Use client ID in case ASP.NET generates a different ID. Also you should get errors if you change ID (on a later date).
<script type="text/javascript">
function Asistencia(txtIdRutPersonaID) {
popUp = window.open('Persona.aspx?txtIdRutPersonaID=' + txtIdRutPersonaID, '', 'width=430,height=300,left=200,top=150,resizable=yes,status=yes,scrollbars=yes');
}
</script>
persona.aspx
<asp:TextBox ID="txtRut" runat="server"></asp:TextBox>
<input type="button" value="Aplicar" onclick="SetCodigo('<%= TxtIdRutPersonaID %>', '<%= txtRut.ClientID %>')" />
<input type="button" value="Cerrar" onclick="cerrar()" />
You can send the data to index.aspx using window.opener and the ID from index.aspx (txtIdRutPersonaID)
<script type="text/javascript">
function SetCodigo(txtIdRutPersonaID, txtRutID) {
if (window.opener != null && !window.opener.closed) {
var txtIdRutPersona = window.opener.document.getElementById(txtIdRutPersonaID);
// txtIdRutPersona is the textbox from index.aspx
txtIdRutPersona.value = document.getElementById(txtRutID).value;
}
window.close();
}
function cerrar()
{
self.close();
}
</script>
persona.aspx.cs
public string TxtIdRutPersonaID
{
get
{
return Request.QueryString["txtIdRutPersonaID"];
}
}
Alternatively you could use ASP.NET code behind to generate onclick event (but theres no good reason to). E.g:
btnOk.Attributes.Add("onclick", $"SetCodigo('{txtIdRutPersonaID}','{txtRut.ClientID}')");
Likewise, theres no reason to use ViewState["form"], ViewState["txtRut"] & ViewState["postBack"]

Session_start not running

I have just started teaching myself dotNet with C# and have hit a problem. Basically I have a variable that I want initialised when the page is first loaded. I have tried to use Session_Start to do this. However when I put a breakpoint at that point, it never seems to get there.
What I am not understanding?
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
int numTries;
protected void Session_start(object sender, EventArgs e)
{
numTries = 3;
}
protected void CheckNum_ServerClick(object sender, EventArgs e)
{
if (numTries>0)
{
numTries--;
}
}
protected void Page_Load(object sender, EventArgs e)
{
Answer.InnerText = "You have "+numTries.ToString()+" changes left.";
}
}
HTML
<%# Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
Guess a number between 1 & 100
<input type="text" id="Guess" runat="server" />
<br /><br />
<input type="submit" value="OK" id="CheckNum" runat="server" onserverclick="CheckNum_ServerClick" />
<br /><br />
<p id="Answer" runat="server"></p>
</div>
</form>
</body>
</html>
I am using Visual Studio Community 2013

General Errors with ASP.NET and C#

I am new to stackoverflow and am needing help.
Last night I was working on an ASP.NET webpage using C# [I'm all very new to it] and after losing a lot of my progress after a flash drive failure, I had to rewrite from a backup I stored on google drive. After putting it onto my computer, I received problems with one of my webpages. At first it did not recognize objects "existing in the current context" but I rewrote the page from hand, because I thought it was some trouble caused by copy-pasting things back. Now I get these errors:
Make sure that the class defined in this code file matches the 'inherits' attribute, and that it extends t he correct base class (e.g. Page or UserControl).
'ASP.index_aspx.GetTypeHashCode();: no suitable method found to override
'ASP.index_aspx.ProcessRequest(System.Web.HttpContext)': no suitable method found to override
'ASP.index_aspx' does not implement interface member 'System.Web.IHttpHandler.IsReusable'
I did not have these problems at all when working with the version that I lost. Here is my code:
This is my "upload.aspx" page
<%# Page Language="C#" AutoEventWireup="true" CodeFile="upload.aspx.cs" Inherits="upload" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>BSHUpload</title>
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.5.0/pure-min.css"/>
</head>
<body>
<!-- Menu -->
<div class="pure-menu pure-menu-open pure-menu-horizontal">
<ul>
<li>Home</li>
<li class="pure-menu-selected">Upload</li>
<li>Requests</li>
</ul>
</div>
<!-- Server-side Upload -->
<form id="form1" runat="server" style="padding-left: 2em">
<div>
<h1>Upload a File</h1>
</div>
<div>
<asp:Label ID="lblStatus1" runat="server" Text="---"></asp:Label>
<asp:FileUpload ID="fdFileDrop1" runat="server" />
<asp:Button ID="btnFileDrop1" runat="server" Text="upload" OnClick="btnFileDrop1_Click" />
</div>
</form>
</body>
</html>
And my code behind:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class upload : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnFileDrop1_Click(object sender, EventArgs e)
{
string strSavePath1 = "C:\\UploadBin\\";
if (fdFileDrop1.HasFile)
{
string strFileName = fdFileDrop1.FileName;
strSavePath1 += strFileName;
fdFileDrop1.SaveAs(strSavePath1);
lblStatus1.Text = "Your file was saved as " + strFileName;
}
else
{
lblStatus1.Text = "You did not specify a file to upload";
}
}
}
And because I think the bottom 3 errors are for the "index.aspx" page here is that also:
Code:
<%# Page Language="C#" AutoEventWireup="true" CodeFile="upload.aspx.cs" Inherits="index" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>BSHUpload</title>
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.5.0/pure-min.css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
</head>
<body style="height: 228px">
<!-- Menu -->
<div class="pure-menu pure-menu-open pure-menu-horizontal">
<ul>
<li>Home</li>
<li class="pure-menu-selected">Upload</li>
<li>Requests</li>
</ul>
</div>
<form id="form1" runat="server" style="padding-left: 2em">
</form>
<div>
<button id="button1">Testing</button>
<p id="toggle1">
Wala
</p>
<script>
$( "#button1" ).click(function() {
$( "#toggle1" ).slideToggle( "slow" );
})
</script>
</div>
</body>
</html>
Code Behind for index.aspx:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class index: System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
I really hope you guys can help because I'm stumped here. I'm pretty sure that both the inherits and the "System.Web.UI.Page" is correct but it says it is not.
The problem is on index.aspx. Check this at the very top of the file
CodeFile="upload.aspx.cs" Inherits="index"
That's wrong. You're pointing to the incorrect code file. It should be
CodeFile="index.aspx.cs" Inherits="index"

ASP .NET: CustomValidator doesn't launch its ServerValidate method

the aspx code:
<%# Page Language="C#" AutoEventWireup="true" CodeBehind="MyWebForm.aspx.cs" Inherits="MyWebApplication.MyWebForm" %>
<!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 runat="server">
<title></title>
</head>
<body style="height: 334px">
<form id="form1" runat="server">
<div style="height: 338px">
<asp:TextBox ID="MyTextBox" runat="server" AutoPostBack="True"></asp:TextBox>
<br />
<asp:CustomValidator ID="MyCustomValidator" runat="server"
ControlToValidate="MyTextBox" ErrorMessage="My error message"
onservervalidate="Foo2"></asp:CustomValidator>
</div>
</form>
</body>
</html>
the C# code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace MyWebApplication
{
public partial class MyWebForm : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
bool Foo1(string bar)
{
if (bar == "bar")
return true;
return false;
}
protected void Foo2(object source, ServerValidateEventArgs args)
{
args.IsValid = this.Foo1(this.MyTextBox.Text);
} // breakpoint
}
}
I set breakpoint in the Foo2 function (comment), but debugger hasn't visited it. I tried writing diffrent text, not writting anything and writting "bar" and pushing enter and tab after that, but it still doesn't work. I mean text changing action. Is it possible?
There's no submit button. You need to add a button to submit the form, which will then trigger page validation.
<asp:Button runat="server" id="myButton" Text="Submit" />

problem sending value from jquery modal popup to parent

below is my code
Can you tell me how to send label1.text on this page to product.aspx and update label1.text ???
product.aspx
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="styles/modal-window.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" language="javascript" src="scripts/jquery-1.3.2.min.js"></script>
<script type="text/javascript" language="javascript" src="scripts/modal-window.min.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="0"></asp:Label>
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click"
Text="icrement" />
show popup
</div>
</form>
</body>
</html>
product.aspx.cs code behind
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = (int.Parse(Label1.Text) + 1).ToString();
}
}
viewcart.aspx
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="decrement"
onclick="Button1_Click" />
<br />
current value:
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>
viewcart.aspx.cs codebehind
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class viewcart : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Label1.Text = Request["fn"];
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = (int.Parse(Label1.Text) - 1).ToString();
}
}
You can add an asp:HiddenField control to the page, set its value through javascript and it will be posted back to your codebehind.

Categories