Monday, December 21, 2009

Disable button by checking validators and invoke server side event

Scenario: - Check whether any validator is triggered. If triggered then don't postback and don't disable the button. If all validators are valid then disable the button and call the server side event.

Solution:-
To solve this scenario , I found out one simple solution using javascript


<script type="text/javascript" language="javascript">
function fnValidate(obj)
{
for(var i=0; i<Page_Validators.length; i++)
{
ValidatorEnable(Page_Validators[i]);

if (Page_Validators[i].isvalid)
{
obj.disabled=true;
}
else
{
obj.disabled=false;
break;
}
}

if (obj.disabled==true)
{
<%=Page.GetPostBackEventReference(btnSubmit)%> }

}

</script>


Call this javascript function in button's OnClientClick property as follows.


<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClientClick="fnValidate(this);" CausesValidation="true" OnClick="btnSubmit_Click"/>

Tuesday, December 1, 2009

Enum to Datatable Function Using Vb.net

In this post I have given simple vb.net snippet to convert Enumeration data to datatable, so that we can use the enumeration datas as master table or lookup table


Shared Function EnumToDataTable(ByVal typEnum As Type) As DataTable
Dim ddlTypnames() As String = [Enum].GetNames(typEnum)
Dim arrddlTypVals As Array = [Enum].GetValues(typEnum)

Dim dt As New DataTable
Dim dr As DataRow

dt.Columns.Add(New DataColumn("values", GetType(Int32)))
dt.Columns.Add(New DataColumn("names", GetType(String)))
Dim i2 As Integer
For i2 = 0 To ddlTypnames.Length() - 1
dr = dt.NewRow()

dr(0) = CInt(arrddlTypVals(i2))
dr(1) = ddlTypnames(i2)

dt.Rows.Add(dr)
Next i2

Return dt
End Function

Using this function

Dim dt As DataTable
dt = EnumToDataTable(GetType(EnumSample))


Happy Coding!

Sunday, November 22, 2009

To Disable Button on Submit Using JavaScript

Simple Javascript Snippet to disable button on submitting to server,
this script has to be placed in the page where the button has to be disabled.
Paste the script below the script manager
This function used to disable the button when the server side button is
clicked and after all other validations.

<script language="javascript" type="text/javascript">
//Set function to execute when the event occurs

..Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
//The function which will disable the button

function BeginRequestHandler(sender, args)
{
document.getElementById("$lt%=btnSave.ClientId %>").disabled=true;
//Insert here the script that needs to be executed
//before the request is sended to the server
}

</script>


Add This in WebConfig File

<httphandlers>

<add validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" path="ScriptResource.axd" verb="GET,HEAD">
</httphandlers>
<httpmodules>
<add type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="ScriptModule">
</httpmodules>

Tuesday, November 3, 2009

To Read Line By Line of Text File in VB.net 2.0

In this Post I have shown the simple code snippet for reading a text file line by line.

Dim strFileName As String = String.Empty
Dim fs As FileStream = Nothing
Dim m_streamReader As StreamReader = Nothing
Dim strCompany As String = String.Empty

fs = New FileStream(strFilePath, FileMode.Open, FileAccess.Read)
m_streamReader = New StreamReader(fs)
m_streamReader.BaseStream.Seek(0, SeekOrigin.Begin)

Do
strContent = m_streamReader.ReadLine()

Loop While (Not m_streamReader.EndOfStream)

Thursday, October 8, 2009

Simple Delay Function Using VB.Net

Simple Delay Function Using VB.Net

Private Sub Delay(ByVal ms As Integer)
Dim time As Integer = Environment.TickCount
Do While (True)
If Environment.TickCount - time >= ms Then
Exit Do
End If
Loop
End Sub

Happy Coding!

Sunday, September 27, 2009

To Write and Save a Text File in Asp.Net 2.0

In this post I will show u the simple code snippet to write and save a text file in specific folder in asp.net using vb code


Public Sub WriteTextandSaveFile()

Dim fs As FileStream = Nothing
Dim sw As StreamWriter = Nothing

Try
fs = New FileStream("D:\Sample\Sample1.txt", FileMode.Create, FileAccess.Write)
sw = New StreamWriter(fs)
sw.WriteLine("This is Sample text")

Catch ex As Exception

Finally
sw.Close()
fs.Close()
sw.Dispose()
fs.Dispose()
End Try


End Sub


never regret anything, if it was good, its wonderful, if it was bad, its experience!

Wednesday, September 16, 2009

Simple File Watcher Program using Vb.Net 2.0

I will show you how to watch file’s activities in a folder and log it, say if a text file is created, changed, deleted etc in specific folder that will be logged in separated text file

First Create a Folder of your own name in your specified path,

In D drive create a folder WatchFolder so the path would be D:\WatchFolder
In D drive create another folder Logs and inside the Log Folder Create Log.txt so the path would be like this D:\Logs\Log.txt

Now create a Project

File-> New Project -> WindowsApplication1 - OK!

In the left side toolbox pan drag and drop FileSystemWatcher control to the Form

Create Two Buttons Button1 and Button 2 in the Form

Change the Text of Button1 as Start Watch and Change the Text of Button2 as Stop Watch

And Write the Code as Follows



Imports System.IO

Public Class Form1

Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
FileSystemWatcher1.Path = "D:/WatchFolder"
MsgBox("Started Watching Folder")
End Sub

Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
FileSystemWatcher1.Dispose()
MsgBox("Stopped Watching Folder")
End Sub

Private Sub FileSystemWatcher1_Changed(ByVal sender As Object, ByVal e As System.IO.FileSystemEventArgs) Handles FileSystemWatcher1.Changed
WriteLog(e.Name + " Changed")
End Sub

Private Sub FileSystemWatcher1_Created(ByVal sender As Object, ByVal e As System.IO.FileSystemEventArgs) Handles FileSystemWatcher1.Created
WriteLog(e.Name + " Created")
End Sub

Private Sub FileSystemWatcher1_Deleted(ByVal sender As Object, ByVal e As System.IO.FileSystemEventArgs) Handles FileSystemWatcher1.Deleted
WriteLog(e.Name + " Deleted")
End Sub

Private Sub WriteLog(ByVal strMsg As String)
Dim fs As FileStream = New FileStream("D:\WatchFolder\Logs\Log.txt", FileMode.Append, FileAccess.Write)
Dim m_streamWriter As StreamWriter = New StreamWriter(fs)
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End)
m_streamWriter.WriteLine(Now.ToString() & " ::==> " & strMsg & Constants.vbLf)
m_streamWriter.Flush()

fs.Close()

fs.Dispose()
End Sub


End Class



Test Results Were Extremely Gratifying, We're surprised the stupid thing works.