The blog is created to discuss Prince2 methodology any issues faced in project management to be resolved or discussed and .Net Technology
Tuesday, April 14, 2015
how to use requiredfield validator with dropdownlist
Here is how we can use requiredfieldvalidator with dropdownlist.
Set the below property of the dropdownlist control
AppendDataBoundItems = true
Then Insert a default value in the Page_Load event
ddl.Items.Insert(0, new ListItem("<<-Select-->", "-1"));
Now define the required field validator and set its initialvalue attribute to "-1"
<asp:RequiredFieldValidator ID="reqddl" runat="server" Text="*" ControlToValidate="ddlRole" InitialValue="-1" SetFocusOnError="true" Display="Dynamic" ValidationGroup="Add"></asp:RequiredFieldValidator>
Happy coding :)
Location:
Al Jubail Saudi Arabia
Monday, March 2, 2015
Hide and Show div using Jquery
We have a requirement to hide and show our Grid in a div.
Following is the code to achieve this functionality
Define the first div which shows the caption Show/Hide. Whenever the mouse is over the div "divtoggle1" second div "divOrders" is either shown or hidden
The below <Div> is defined with caption Show/Hide
<div id="divtoggle1" style="text-align:left;width:250px">
Show/Hide
</div>
The below <Div> contains the GridView which we need to Show/Hide
<div id="divOrders">
<asp:GridView ID="grvOrders" runat="server" AutoGenerateColumns="False" >
<Columns>
<asp:TemplateField HeaderText="firstcolumn" >
<ItemTemplate>
<asp:LinkButton ID="lnkName" runat="server" Text='<%#
DataBinder.Eval(Container.DataItem,"Names") %>' CommandName="OrderDetail">
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
The Jquery part which toggle the div
we are access the div "divtoggle" with "#" sign because in Jquery when you want to access any element by ID you have to use "#" sign before the name of element.
we call the "divtoggle1" mouseover event and in that event we are checking the second div "divOrders".
if "#divOrders" visible then hide it or if it is hidden then make it visible. we also added delay function to make the Show/Hide smooth and we used hide argument "slow".
<script type="text/javascript">
$(document).ready(function () {
$("#divtoggle1").mouseover(function () {
if ($('#divOrders').is(':visible')) {
$("#divOrders").delay(100).hide('slow');
$("#divtoggle1").text('Show Orders');
}
else {
$("#divOrders").delay(100).show('slow');
$("#divtoggle1").text('Hide Orders');
}
}); // end of mouse over
}); // end of ready function
</script>
Following is the code to achieve this functionality
Define the first div which shows the caption Show/Hide. Whenever the mouse is over the div "divtoggle1" second div "divOrders" is either shown or hidden
The below <Div> is defined with caption Show/Hide
<div id="divtoggle1" style="text-align:left;width:250px">
Show/Hide
</div>
The below <Div> contains the GridView which we need to Show/Hide
<div id="divOrders">
<asp:GridView ID="grvOrders" runat="server" AutoGenerateColumns="False" >
<Columns>
<asp:TemplateField HeaderText="firstcolumn" >
<ItemTemplate>
<asp:LinkButton ID="lnkName" runat="server" Text='<%#
DataBinder.Eval(Container.DataItem,"Names") %>' CommandName="OrderDetail">
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
The Jquery part which toggle the div
we are access the div "divtoggle" with "#" sign because in Jquery when you want to access any element by ID you have to use "#" sign before the name of element.
we call the "divtoggle1" mouseover event and in that event we are checking the second div "divOrders".
if "#divOrders" visible then hide it or if it is hidden then make it visible. we also added delay function to make the Show/Hide smooth and we used hide argument "slow".
<script type="text/javascript">
$(document).ready(function () {
$("#divtoggle1").mouseover(function () {
if ($('#divOrders').is(':visible')) {
$("#divOrders").delay(100).hide('slow');
$("#divtoggle1").text('Show Orders');
}
else {
$("#divOrders").delay(100).show('slow');
$("#divtoggle1").text('Hide Orders');
}
}); // end of mouse over
}); // end of ready function
</script>
Monday, February 2, 2015
Passing-parameter-value-through-a-function-from-anchor-tag-in-a-gridview
We have a requirement where we have to pass Session values and DataBound values to Javascript function using Anchor tag in Gridview.
Javascript function description
<script language="javascript" type="text/javascript">
function OpenAttachmentWindow(roomId, StudentId, Id)
{
var ReadOnly = 0;
window.open('UploadSupplierAttachments.aspx?roomId=' + roomId + '&studentId=' +
StudentId + '&id=' + Id + '&ReadOnly=' + ReadOnly, '', 'width=700,height=500')
}
</script>
Gridview Template column
We have anchor html control which will pas the server side arguments to javascript function.
<asp:TemplateField HeaderText="view">
Following is the Anchor defined in the Gridview where we are passing Session and Eval values as parameter to the Javascript function
OpenAttachmentWindow(roomId,StudentId,Id).
OpenAttachmentWindow(roomId,StudentId,Id).
Javascript function description
<script language="javascript" type="text/javascript">
function OpenAttachmentWindow(roomId, StudentId, Id)
{
var ReadOnly = 0;
window.open('UploadSupplierAttachments.aspx?roomId=' + roomId + '&studentId=' +
StudentId + '&id=' + Id + '&ReadOnly=' + ReadOnly, '', 'width=700,height=500')
}
</script>
Gridview Template column
We have anchor html control which will pas the server side arguments to javascript function.
<asp:TemplateField HeaderText="view">
<ItemTemplate>
<a onclick='<%# "OpenAttachmentWindow(" +Session["roomId"] + " , " +
Session["StudentId"] + ", " + Eval("Id") +" );" %>' id="a1" runat="server" >Attachment </a>
Session["StudentId"] + ", " + Eval("Id") +" );" %>' id="a1" runat="server" >Attachment </a>
</ItemTemplate>
</asp:TemplateField>
Location:
Al Jubail Saudi Arabia
Wednesday, January 21, 2015
Compare Validator DataTypeCheck
I have been using asp.net Validator controls for quite long. I have come across the unexplored property of Compare Validator which can check input against following types
1) Currency
2) Date
3) Double
4) Integer
5) String
you can use the Validator by setting the following properties
Operator="DataTypeCheck"
Select any of the below types for data type check
Type= Currency
Date
Double
Integer
String
Example:
<asp:CompareValidator ID="CompareValidatorNumber" runat="server" ControlToValidate="txtTelephone" Text="*" Display="Dynamic" ErrorMessage="Please enter numbers only" Operator="DataTypeCheck" Type="String"></asp:CompareValidator>
Location:
Al Jubail Saudi Arabia
Wednesday, November 19, 2014
filling DataSet by calling oracle stored procedure
Use the below code as a reference.
public void GetDatainDataset()
{
using (OracleConnection conn = new OracleConnection(strConnStr)) { conn.Open();
OracleCommand cmdABC = new OracleCommand();
cmdABC.Connection = conn;
cmdABC.CommandType = CommandType.StoredProcedure;
cmdABC.CommandText = Stored Procedure Name;
cmdABC.Parameters.Add("P_RC", OracleDbType.RefCursor).Direction = ParameterDirection.Output;
DataSet ds = new DataSet();
OracleDataAdapter adapter = new OracleDataAdapter(cmdPlants);
adapter.Fill(ds);
ddlABC.DataSource = ds.Tables[0];
ddlABC.DataTextField = "A";
ddlABC.DataValueField = "B";
ddlABC.DataBind();
conn.Close();
conn.Dispose();}
Location:
Al Jubail Saudi Arabia
Monday, October 20, 2014
Gadget Enthusiasts pebble dropped price for original pebble and pebble steel
Statement
anxiously waiting for my pebble to connect it to my nexus 4
Labels:
smart watch
Location:
Al Jubail Saudi Arabia
Wednesday, October 1, 2014
Generate c# code from *.wsdl file using WSDL Tool
Web Service Descriptor Language Tool
is used to generate the c# code from the *.wsdl file and you can use it as proxy class for prototyping
We have been assigned a small integration project. It is in inception stage so many things are not clear and we have been given one *.wsdl file to study and we tried to generate c# code from it to work on our application prototype
wsdl.exe can be found in Visual Studio 2005 at the following location
C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin
you can use following command to generate the proxy class from command prompt
wsdl /out:C:\Test\out:myProxyClass.cs C:\Test\MyWsdlfile.wsdl
Now you can add the myProcyClass.cs in your project and use its methods. Please don't modify the myProcyClass.cs file as it auto generated.
is used to generate the c# code from the *.wsdl file and you can use it as proxy class for prototyping
We have been assigned a small integration project. It is in inception stage so many things are not clear and we have been given one *.wsdl file to study and we tried to generate c# code from it to work on our application prototype
wsdl.exe can be found in Visual Studio 2005 at the following location
C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin
you can use following command to generate the proxy class from command prompt
wsdl /out:C:\Test\out:myProxyClass.cs C:\Test\MyWsdlfile.wsdl
Now you can add the myProcyClass.cs in your project and use its methods. Please don't modify the myProcyClass.cs file as it auto generated.
Wednesday, September 10, 2014
SQL Query Column values as comma separated
Introduction
I have a table as shown below, which has Country_Code and Cities of the a country.
I need to retrieve distinct cities in a country based on the Country_Code
column as a comma separated string.
SQL Statement
The following SQL Statement shows how it can be achieved
Begin
declare @str varchar(1000)
SELECT @str= coalesce(@str + ',' , '') + a.CountryLang_Desc
FROM (SELECT DISTINCT CountryLang_Desc from CountryLanguages where Country_Code='IN') a
print @str
End
Location:
Al Jubail Saudi Arabia
Wednesday, August 13, 2014
_doPostBack and Browser back button behavior
The odd behavior of Browser Back Button on _doPostBack()
In one of application developed in Asp.net page is not behaving as desired when browser back button is pressed.
The steps performed in the following order
1) Go to the page
2) Click a link which causes _doPostBack and navigate to new page
3) Press the browser back button
4)click on any button
This will end up re-executing the _doPostBack() action instead of firing Button click event.
The reason or behavior is as follows
- Back button goes back to the previous page - page is not reloaded from server!
- Browser assigns __EVENTxxx etc. with the previous POST back values
- The server detects the __EVENTxxxx form vars and routes events accordingly (incorrect behavior)
To overcome this behavior i had a simple solution in my mind to expire the page and empty the secure page cache.
It worked for me by introducing following code in page load event and use is at the top not in any checks like IsPostback etc.
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetAllowResponseInBrowserHistory(false);
Labels:
_dopostback browser back button
Location:
Al Jubail Saudi Arabia
Wednesday, July 16, 2014
Disable Secure Page Cache or Expire Web Page on browser button
Expire Web Page on Browser Back/Forward Button click
Why we need to expire the web page when browser back/forward button
is clicked. It is one of the security concern that if any user using any
public shared computer and left the browsed page open the bad guy
can sneak peak in to your information by using browser back/ forward buttons.
There are lot of solution available but the solution is little tricky lets start
Part 1
First of all add following response properties in you Page_Load function
and don't put this code in if(!IsPostback) code block in Page_Load function
see sample code as below
protected void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
// you Logic here
}
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache);
Page.Response.Cache.SetNoStore();
Page.Response.Cache.AppendCacheExtension("no-cache");
Page.Response.Expires = 0;
}
If there is any action or postback then the below mentioned lines will work and expire the page
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache);
Page.Response.Cache.SetNoStore();
Page.Response.Cache.AppendCacheExtension("no-cache");
Page.Response.Expires = 0;
Part 2
Now to add your own logic to cater pages where we don't have any postback.
Add the following code in you Page_Load function if(!IsPostBack) check
as below
We have taken one Session variable "TimeStamp" and one ViewState variable "TimeStamp".
when the web page is loaded with any navigation link inside the application we have Session["TimeStamp"] and ViewState["TimeStamp"] variable value "null" and that means browser buttons are not clicked and we don't have to expire the Page.
Whenever the user click the browser back/forward button the ViewState will become null for that page and Session will contain the "TimeStamp" so we infer that browser button is clicked and we need to expire the page and redirect it to a page in our case we redirect to WebPageExpire.aspx .
protected void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
// you Logic here
if (isPageExpired())
{
Response.Redirect("WebPageExpire.aspx");
}
else
{
string strNow = DateTime.Now.ToString();
Session["TimeStamp"] = strNow;
ViewState["TimeStamp"] = strNow;
}
}
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache);
Page.Response.Cache.SetNoStore();
Page.Response.Cache.AppendCacheExtension("no-cache");
Page.Response.Expires = 0;
}
Now add the function isPageExpired() which compares the Session["TimeStamp"] and ViewState["TimeStamp"].
private bool isPageExpired()
{
if (Session["TimeStamp"] == ViewState["TimeStamp"])
return false;
else
return true;
}
One more thing from where ever you are navigating either asp:Button , asp:Link etc
we have to initialize the Session["TimeStamp"]= null so that every time when we navigate legitimately our Session and Viewstate have same value.
protected void BtnRegister_ServerClick(object sender, System.Web.UI.ImageClickEventArgs e)
{
Session["TimeStamp"] = null;
Response.Redirect("Register.aspx", false);
}
The same logic we have to add in every page where we need secure cache disable functionality plus you have to design a page in my case i have designed the page WebPageExpire.aspx and show message to user WebPage has expired please login again.
I hope this will solve the problem and looking forward to hear from you guys.
Labels:
page expire
Location:
Al Jubail Saudi Arabia
Subscribe to:
Posts (Atom)
