AJAX :: Executing Code From Js Pagemethods?
Jul 15, 2010I wrote a code to call some event...
[Code]....
and
[Code]....
js calls this code and I get object reference not set to an instance of an object
I wrote a code to call some event...
[Code]....
and
[Code]....
js calls this code and I get object reference not set to an instance of an object
It is possible to execute code behind in parent just after closing ModalPopupExtender ?
View 2 RepliesI am using following server side code to save the data from ASP.NET Control toolkit Editor to the database It follows with the HTML Code The problem is that, data is saved successfully. But it is saved twice. Main problem is this server side event is fired twice. How can i prevent it from firing twice?
Server side code
Imports System.Data.SqlClient
Partial Class Administrator_Calendar
Inherits System.Web.UI.Page
Protected Sub BtnAdd_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnAdd.Click
Try
Dim dbobj As New db
Dim i As Integer = 0
Dim rdr As SqlDataReader = dbobj.selectQuery("select max(srno) from calendar")
If rdr.HasRows = True Then
rdr.Read()
i = rdr.Item(0)
End If
rdr.Close()
dbobj.insertQuery("insert into calendar values (" & i + 1 & " , '" & Me.Txt_dt.Text & "' , '" & Me.Editor1.Content & "')")
dbobj = Nothing
Catch ex As Exception
End Try
End Sub
End Class
HTML CODE
<%@ Page Language="VB" MasterPageFile="~/MasterPages/Admin_AftrLogin.master" AutoEventWireup="false"
CodeFile="Calendar.aspx.vb" Inherits="Administrator_Calendar" Title="Excel Crop Care Ltd. / Administration Section / Manage Calendar..." %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit.HTMLEditor"
TagPrefix="cc2" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="Server">
<div>
<cc1:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0">
<cc1:TabPanel runat="server" HeaderText="Selected Dates" ID="TabPanel1">
<ContentTemplate>
<asp:GridView ID="Gridview1" runat="server" AutoGenerateColumns="False" DataKeyNames="srno"
DataSourceID="SqlDataSource1">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True">
<ItemStyle Width="20%" />
</asp:CommandField>
<asp:BoundField DataField="srno" HeaderText="No." ReadOnly="True" SortExpression="srno">
<ItemStyle Width="10%" />
</asp:BoundField>
<asp:BoundField DataField="date" HeaderText="Date" SortExpression="date">
<ItemStyle Width="30%" />
</asp:BoundField>
<asp:BoundField DataField="description" HeaderText="Description" SortExpression="description" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DataConnectionString %>"
SelectCommand="SELECT * FROM [calendar]" UpdateCommand="Update calendar set date=@date,description=@description where srno=@srno"
DeleteCommand="Delete from calendar where srno=@srno"></asp:SqlDataSource>
</ContentTemplate>
</cc1:TabPanel>
<cc1:TabPanel ID="TabPanel2" runat="server" HeaderText="Add New">
<ContentTemplate>
<table>
<tr>
<td width="30%">
Date :
</td>
<td>
<asp:TextBox ID="Txt_dt" runat="server" Height="16px" Width="170px" CausesValidation="True"
Font-Names="Verdana" ForeColor="#666666"></asp:TextBox>
<asp:ImageButton runat="Server" ID="Image1" ImageUrl="../Images/Calendar_scheduleHS.png"
AlternateText="Click to show calendar" /><br />
<cc1:CalendarExtender ID="Txt_dt_CalendarExtender" runat="server" DaysModeTitleFormat="dd/MM/yy"
Enabled="True" Format="dd/MM/yy" TargetControlID="Txt_dt" PopupButtonID="Image1">
</cc1:CalendarExtender>
<cc1:TextBoxWatermarkExtender ID="Txt_dt_TextBoxWatermarkExtender" runat="server"
Enabled="True" TargetControlID="Txt_dt" WatermarkText="DD/MM/YY">
</cc1:TextBoxWatermarkExtender>
<cc1:MaskedEditExtender ID="Txt_dt_MaskedEditExtender" runat="server" MaskType="Date"
CultureDateFormat="dd/MM/yy" Enabled="True" TargetControlID="Txt_dt" Century="2000"
UserDateFormat="DayMonthYear" Mask="99/99/99">
</cc1:MaskedEditExtender>
</td>
</tr>
<tr>
<td colspan="2">
<asp:Label ID="Lbl_msg" runat="server" Text="Enter description in the editor below :"></asp:Label>
</td>
</tr>
<tr>
<td colspan="2">
<cc2:Editor ID="Editor1" runat="server" Height="350px" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<asp:Button ID="BtnAdd" runat="server" Text="Add" OnClick="BtnAdd_Click" Width="75px"
CssClass="btn" />
<asp:Button ID="Btn_Rem" runat="server" Text="Remove" OnClick="BtnAdd_Click" Width="75px"
CssClass="btn" />
</td>
</tr>
</table>
</ContentTemplate>
</cc1:TabPanel>
</cc1:TabContainer>
</div>
</asp:Content>
In a button click, I need to be able to hide my ModalPanel and then continue running other code server-side. I currently have it this way:
[Code]....
It hides the panel at the of the event handler because that's when the page posts back. So what can I do to hide the panel and then continue running the rest of the server-side code?
Basically what I'm trying to do is the following:
1. Button_display in my webform simply displays my UpdatePanel via ModalPopupExtender.
2. Button_closePanel_Click will hide my UpdatePanel and then run some server-side code, which would display my UpdateProgress control.
protected void Button_closePanel_Click(object sender, EventArgs e)
Why Ajax pagemethods are static?
View 1 RepliesI have defined a Shared Function in the code behind and a javascript function to call the webmethod. Also, I have EnablePageMethogs set to true in ScriptManager.
View 22 RepliesRan into a bit of problem when using PageMethods when calling a webmethod in the code-behind. My markup page has a radgrid which gets populated via the objectdatasource.Pagemethods works and returns data as expected when the objectdatasource binds the radgrid with some data but not when the objectdatasource returns nothing, i.e. radgrid is empty. PageMethods call has got nothing to do with the objectdatasource, I'm simply using its output to build a list of checkboxes dynamically on the client side using Javascript. And this is how my code snippets looks like:Markup page:
<script type="text/javascript">
function CallGetARInvoices(src,dest)
{
[code]...
One reason we currently use UpdatePanels for doing our AJAX is because our BL and DA layers pass around the Page.User.Identity for authentication.
Is there a way to access this?
I am creating a website in asp.net its a very big site about 250 pages and with a big sql database. I am confused as which ajax method i should follow. There are three options.
1. ASP.NET UpdatePanels -: Simple to use but causes a lots of uneccessary request and viewstate. I want my pages to open as quick as possible.
2.ICallback-: Causes less request and renders the page quickly. But security concerns and viewstate are there.
3.Page Methods with jQuery-: No Security anyone can quickly hack the parameters passed using "POST" mehtod.
I am using an AJAX dropdownlist control with two dropdownlist. Instead of using a webservice to populate the data, I used the pagemethod to populate. My problem is the second droplist won't populate. I get a server error, 500 in the droplist. The first droplist populates fine.
BUT here's the real kicker. If I reverse the order of the public static function such that GetHelloList2 comes BEFORE GetHelloList1 in the code, then the GetHelloList2 works ...... it just seems like it is only firing one pagemethod event and allowign only one.
[URL]
Since last week I've had a really odd issue with PageMethods, the forms authentication cookie, and the back button which i've never seen before.
Essentially, I have a 'home page' which on document.ready (using jQuery), loads some data through PageMethods, and then renders a list - from which you can click through to a details page about the item. In general use, it works fine. However, using the back button after clicking through (ie: going back to the home page), it throws a PageMethods error. The browser's 'authentication required' prompt appears, and if you click cancel, the server returns a 401. The error returned by PageMethods on the client side is 'authentication failed'.
After inspecting the request in Fiddler, the forms authentication cookie isn't sent with the request, which would explain why it is happening. My fiddler entry for the request looks like this:
[Code]....
I have tried code, but there is error...
Compilation Error:
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. Compiler Error Message: CS1525: Invalid expression term ')'
Source Error:
Line 8: <script type = "text/javascript">
Line 9: function ShowAvailability() {
Line 10: PageMethods.CheckUserName(document.getElementById("<%=txtUserName.LoginID%%>").value, OnSuccess); Line 11: }
Line 12: function OnSuccess(response) {
I just finished building a new version of a web app that imports custom-formatted documents. However, now I just found out that I need this web app to also import custom documents from 3 years ago. I have the code from 3 years ago that imports the older docs...
I was wondering if I could put some type of "if then" statement in my code like " If oldVersionofDoc Then...execute the old code located in this .vb file".
I have a project that uses PageMethods to call functions on the server. The server functions (written in C#) return the values as array of strings, without doing any kind of serialization and in the client side (from Js) the accessing of the return values is by using static variable called arguments. I found that sometimes for some users (cases are not repro) sometimes an exception occured
"WebServiceFailedException the server method 'Foo' returned invalid data. the 'd' property is missing from JSON."
Some searching on google I found that people are serializing the return values using DataContractJsonSerializer class and in js accessing the return value using one of the callback function Example:
function OnRequestComplete(result,
userContext, methodName) {
var Person = eval('(' + result + ')');
alert(Person.Forename);
alert(Person.Surname); }
So is the first technique is correct? or what?
P.S:
the function on the server is defined on the default.aspx.cs file as follows:
[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
public static string[] Foo(string s);
from the client side the calling is as follows
PageMethods.Foo("value",OnSuccess);
Also all the users have the same browser version (IE8)
I have an ASP.Net page with some static methods that I access from the client side using AJAX and the PageMethods capability of the ScriptManager control. The web site has forms authentication setup.My problem is that when the user is not signed in, and makes an action that calls one of the page methods, the operation fails and the failure handler is called as expected but the error object has the status code 500 (internal server error), while it was expected to be 401 (not authorized), because it's the forms authentication module who interrupted the request.Even when I write code like this in the service method:
[Code]....
I also get the status code 500, and an indication of a ThreadAbortException (because of Response.End) in the failure handler. It appears that the handler that carries out service methods calls consider anything that interrupts the execution of the method "an internal server error" regardless of the cause.
Now what should I do if I want to provide a message saying "You are not logged in" to the user, or even redirect him to the login page, while I can't distinguish between the several errors that may occur because I always get status code of 500.
I am using ASP.net with WebMethods to show data to the customer and save data entered by the customer.
My current framework uses javascript to create an xml with all of the values of all the html elements in de "div" (or other element). This xml is converted to a string and send to the webserver using PageMethods.
When I receive this xml (as a string), I parse it with my own XmlDataParser which does some security checks.
I need to parse the xml to an XmlDataParser in every PageMethod I use, and I also need to catch different exceptions (like exceptions that are thrown when data is validated) to show them to the user (=> The reason why is explained in one of my previous posts: [URL]
I wonder if it is possible to write a wrapper around the WebMethod, so I can parse the xml to the XmlDataParser in this wrapper, and pass it on to the code behind, and process exceptions that occur in the code behind?
I want to execute a CS Code but before that, i want a confirmation from user, it will be a javascript confirmation box, if the user say yes, then execute the code, or else leave cs code don't execute
below is my button code
<asp:Button runat="server" ID="EmptyButton" OnClick="EmptyButton_Click" OnClientClick="EmptyMyCart()" />
I'm using the following code in an attempt to show a dialog with a list of errors on the client:
if (rollout.ImportErrors.Count > 0)
{
ClientScript.RegisterClientScriptBlock(GetType(), "showErrors", "showErrors();", true);
}
The error count is non-zero and the following script block is emitted, but the script isn't executing.
<script type="text/javascript">
//<![CDATA[
$("#error-report").dialog("open")//]]>
</script>
If I call the function directly from a Firebug console window, the dialog shows properly, so I know the dialog and my code are working. BTW, this code is in a content page, using a content placeholder that 'injects' code into the element of the rendered page.
i write a page method and some sort of javascript to work with that method, everything fine in any browser but firefox!
[Code]....
<input id="offcheckcid" type="button" value="بررسی کلوب آی دی" onclick="CheckCloobID('offline');" style="color: Black;"/>
function CheckCloobID(sender) {
var id;
var email;
var button;
id = $get("ctl00_ctl00_cph1_cph1_offcid");
email = $get("ctl00_ctl00_cph1_cph1_offcpe");
button = $get("offcheckcid");
button.value = "کمی تامل نمائید...";
button.disabled = true;
id.disabled = true;
email.disabled = true;
PageMethods.CheckCloobID(id.value, email.value, 'offline', OnSuccess, OnTimeout, OnFailure);
}
function OnSuccess(result) {
var results = result.split("#", 2);
if (results[0] == "Accepted") {
var price = $get("offcut");
price.innerText = "30,000- ریال";
var total = $get("offtotal");
total.innerText = "570,000 ریال";
var button = $get("offcheckcid");
button.value = "تائید شد";
}
else {
alert("...کلوب آی دی و ایمیل محرمانه وارد شده وجود ندارد یا قبلا تخفیف گرفته است");
ActivateButtons();
}
}
the problem: onsuccess event did not work in firefox, no error message displayed in firebug...
i have used PageMethods to access the server side functions in javascript , but now my problem is that with pagemethods your controls will not go throught the full page lifecyle and these leads me to have "Object not set for an instance of an object" error. Now can someone come with a differnt approach without using pagemethods. What i want is to call a server side function , i dont want to pass any parameters to it
View 6 RepliesI am using PageMethods in my pages, and we have some requirement in which some maintenance process happened in certain time span, so in that time we set on DB flag consider as True False, I have written my code in Global.asax where in application_AcquireRequestState(...,...) Method I am checking the flag and depanding upon the flag I am redirecting my Page to one Maintenance dummy page, so application_AcquireRequestState() method working properly when page get postback or I am using thru any server control, but when I am using Asynchronous call using PageMethods in application_AcquireRequestState I am getting exception, Can anyone solve my problem I am using VB.NET.
[Code]....
I am designing an ASP.NET web application (.NET 4.0) which basically has a page that should interact with the code behind every 1-2 seconds (Using Client callbacks or PageMethods via ScriptManager or jQuery.ajax) It'll be hosted on an intranet, so a 1-2 second refresh rate is kind of reasonable.
How can I make the page to access the web service/pagemthod in the code behind in a timeply manner (e.g. every 1 second). Should I use a javascript timer (I'm not familiar with javascrip very much)?
Although the site is hosted on an intranet, but I still need to implement a good approach to reach the desired refresh rate. the amount of data being transfered is about 1KB in each interaction. What are your recommendations on my design regarding this? (using callbacks or ScriptManager or jQuery.ajax,...
deleted old code
View 3 Replies[Code]....
I then decided to run the whole thing on the server it uses the same code above but I now have several parameters to pass in and call a slightly different stored procedure
DataSet dsEx = new DataSet();
SqlCommand testcommand = new SqlCommand();
testcommand.CommandText = "spLockUnlock";
testcommand.CommandType = CommandType.StoredProcedure;
testcommand.Connection = sqlLockUnConn;
testcommand.Connection.Open();
testcommand.Parameters.Add("@OffState", SqlDbType.Varchar);
testcommand.Parameters["@OffState"].Value = ViewState["OffState"].ToString();
testcommand.Parameters.Add("User",SqlDbType.Int);
testcommand.Parameters["@User"].Value = lblUserID.Text;
testcommand.ExecuteNonQuery();
testcommand.Connection.Close();
rest of the code follows
The stored procedure uses the parameters to lock certain records, then I use exec spOfflineSystem which executes a series of select statements (as above), then I unlock the records afterwards....no problems however my dialog box on the front now reads
CustomersEC45TG.xml
If you step through the code the filename reads Customers.xml yet on the front end we get the spurious characters....each time this is executed the spurious characters are different. Only every now and then will the correct filename dialog box show.
Here is what I need to do: I need to execute some server side code after a user clicks on a button, THEN I need to execute some client side code. OnClientClick gets invoked BEFORE the onClick; and what I need is the opposite.
Is there a way to do this? It looks like I will have to execute JS code from the server code.