Thursday, December 30, 2010
Understand Handlers and Modules in ASP.NET by reading code
Simple and great example to help you understand HTTP Handlers and HTTP Modules in ASP.NET
Wednesday, December 29, 2010
How to implement busy cursor in web forms by JQuery?
No validation:
<asp:Button UseSubmitBehavior="false" OnClientClick="$('body').css('cursor', 'wait'); $('.Buttons').attr('disabled', 'true');" ID="ButtonBack" runat="server" Text="aa" ValidationGroup="novalidation" OnClick="ButtonBack_Click" />
With validation
<asp:Button UseSubmitBehavior="false" OnClientClick='if (Page_ClientValidate("vg")) { $("body").css("cursor", "wait"); $(".Buttons").attr("disabled", "true");}; '
ID="ButtonReview" runat="server" Text="Next" OnClick="ButtonReview_Click"
ValidationGroup="vg" />
And also add following code into master page or web forms page to reset cursor to normal, if validation failed
<script type="text/javascript">
function pageLoad() {
$('body').css('cursor', 'auto');
}
</script>
Tuesday, December 28, 2010
Saturday, December 25, 2010
How to solve “New transaction is not allowed because there are other threads running in the session” in Entity Framework
Make sure only call SaveChanges method once in the end, not inside loop.
Or covert collection to IList
Or covert collection to IList
Friday, December 24, 2010
How to use Ajaxupload in MVC
Client side:
1. Get the latest lib from http://valums.com/ajax-upload
2. Copy into your project
3. Add refrence in your aspx file:
<script src='<%=Page.ResolveClientUrl("~/Scripts/ajaxupload.3.6.js")%>' type="text/javascript"></script>
4. Add Javascript code to call ajaxupload
<script type="text/javascript">
$(document).ready(function() {
var button = $('#upload')[0], interval;
new AjaxUpload(button, {
action: '<%= Url.Relative("~/ControllerName/Save") %>',
name: 'myfile',
onSubmit: function(file, ext) {
if (!(ext && /^(doc|pdf|txt|xls)$/.test(ext))) {
alert('Error: invalid file extension');
return false;
}
button.value = 'Uploading';
this.disable();
interval = window.setInterval(function() {
var text = button.value;
if (text.length < 13) {
button.value = button.value + '.';
} else {
button.value = 'Uploading';
}
}, 200);
},
onComplete: function(file, response) {
button.value = 'Upload';
window.clearInterval(interval);
this.enable();
if (response == 'error')
alert('Error: File size is over limit (10mb). '+file);
else
//Dispaly uploaded file
},
responseType:'json'
});
});
</script>
Server side is very simple. Just create a Json action:
public JsonResult Save()
{
try
{
var files = this.HttpContext.Request.Files;
string filename = System.IO.Path.GetFileName(files[0].FileName);
files[0].SaveAs(filename);
return Json(null);
}
catch
{
return Json("error");
}
}
1. Get the latest lib from http://valums.com/ajax-upload
2. Copy into your project
3. Add refrence in your aspx file:
<script src='<%=Page.ResolveClientUrl("~/Scripts/ajaxupload.3.6.js")%>' type="text/javascript"></script>
4. Add Javascript code to call ajaxupload
<script type="text/javascript">
$(document).ready(function() {
var button = $('#upload')[0], interval;
new AjaxUpload(button, {
action: '<%= Url.Relative("~/ControllerName/Save") %>',
name: 'myfile',
onSubmit: function(file, ext) {
if (!(ext && /^(doc|pdf|txt|xls)$/.test(ext))) {
alert('Error: invalid file extension');
return false;
}
button.value = 'Uploading';
this.disable();
interval = window.setInterval(function() {
var text = button.value;
if (text.length < 13) {
button.value = button.value + '.';
} else {
button.value = 'Uploading';
}
}, 200);
},
onComplete: function(file, response) {
button.value = 'Upload';
window.clearInterval(interval);
this.enable();
if (response == 'error')
alert('Error: File size is over limit (10mb). '+file);
else
//Dispaly uploaded file
},
responseType:'json'
});
});
</script>
Server side is very simple. Just create a Json action:
public JsonResult Save()
{
try
{
var files = this.HttpContext.Request.Files;
string filename = System.IO.Path.GetFileName(files[0].FileName);
files[0].SaveAs(filename);
return Json(null);
}
catch
{
return Json("error");
}
}
Subscribe to:
Posts (Atom)