Today i had a task which i need to call a code behind method from .ascx page. So i have created a handler page to achieve this task. Here i will tell you the steps to create a handler page:
1. Create a SharePoint 2013 empty project like below image:
2. Create a Mapped Layouts folder
3. In Visual Studio 2013 we don't have Dynamic Handler. So here we need to create Handler page by our selves. From add new item select an application page and rename it like below:
1. Create a SharePoint 2013 empty project like below image:
2. Create a Mapped Layouts folder
3. In Visual Studio 2013 we don't have Dynamic Handler. So here we need to create Handler page by our selves. From add new item select an application page and rename it like below:
4. Now remove the designer.cs from the .ashx file. Here we don't need the designer file.
5. Open MyHandler.ashx.cs. It will look like below image:
6. Next we have to create GUID for this handler page. From tools select Create GUID
7. From that pop up select Create GUID and copy that ID
8. Now paste that GUID in top of our class file like below, make sure that all the alphabetical characters are in smaller case in that GUID:
For this GUID we need to include the using System.Runtime.InteropServices; name space.
9. In class file remove the Page load method and add the default methods like below:
and make sure that your handler page inherits from IHttpHandler not from layouts page.
Change that like the image:
10. Now we have to modify the MyHandler.ashx page. Delete everything from that page and replave with the below code:
<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ WebHandler Class="$SharePoint.Type.4dcefb1c-d4d7-4dd4-9870-4d0f66c2e55d.FullName$" %>
Here paste our GUID after SharePoint.Type with all the alphabets are in smaller case.
11. Now Change the Solution settings:
First unload the project:
Then edit .csproject like settings:
Add the the below line after the <SandboxSolutions> tag
<TokenReplacementFileExtensions>ashx;</TokenReplacementFileExtensions>
Now reload the project:
Now deploy your solution and browse the following url:
http://siteurl/_layouts/15/TestHandlerPage/MyHandler.ashx
and we can get the Out put like below:
If you are facing any error while accessing the page then change the some settings like below:
Right click the MyHandler.ashx and select properties. From that properties change the build action to Content
Now we will get the out put.
12. Now we can see how to call that method from .ascx page
function OpenTreeViewPopUp() {
try {
$.ajax({
url: '/cgmt/_layouts/15/TestHandlerPage/MyHandler.ashx',
contentType: "application/json; charset=utf-8",
success: function (result) {
alert(result);
},
error: function (data) {
//alert(result);
}
});
} catch (e) {
alert(e.message);
}
return false;
}
using ajax we can call the handler method like the above code. The result will return the values from code behind.
Reference : Click Here
Hope this will help,
Thank you
No comments:
Post a Comment