tag:blogger.com,1999:blog-56014286306193697672024-03-13T13:52:48.723-07:00ASP.netEntityFrameworkCorehttp://www.blogger.com/profile/02353727592222942233noreply@blogger.comBlogger12125tag:blogger.com,1999:blog-5601428630619369767.post-65611815781409745872017-12-01T19:18:00.003-08:002017-12-01T19:18:41.087-08:00Base64 to Image in c#<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
/// <summary></summary><br />
/// This function convert data url to Image and return saved image path<br />
/// </div>
/// <param name="data" /><br />
/// <returns></returns><br />
public string Base64ToImage(string data)<br />
{<br />
string ret = "";<br />
var base64Data = Regex.Match(data, @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;</data></type><br />
var binData = Convert.FromBase64String(base64Data);<br />
<br />
using (var stream = new MemoryStream(binData))<br />
{<br />
using (Image img = new Bitmap(stream))<br />
{<br />
string basePath = Server.MapPath("~/UserFiles/PhotoPrint");<br />
ret = Guid.NewGuid().ToString() + ".png";<br />
img.Save(basePath + "\\" + ret, ImageFormat.Png);<br />
}<br />
}<br />
<br />
return ret;<br />
}EntityFrameworkCorehttp://www.blogger.com/profile/02353727592222942233noreply@blogger.com0tag:blogger.com,1999:blog-5601428630619369767.post-40775490474267237162014-03-07T06:36:00.002-08:002014-03-07T06:36:15.046-08:00GridView with JQuery<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
<br />
<span style="color: #1a1a1a; font-family: 'Segoe UI'; font-size: 10pt;"><span style="color: blue; cursor: pointer; text-decoration: underline;">http://www.jquerybyexample.net/2012/05/gridview-and-jquery-in-aspnet.html</span></span></div>
EntityFrameworkCorehttp://www.blogger.com/profile/02353727592222942233noreply@blogger.com0tag:blogger.com,1999:blog-5601428630619369767.post-65565551959709962212009-05-22T04:14:00.000-07:002009-05-22T04:15:06.709-07:00Indexer<span id="ctl00_ContentPlaceHolder1_lblDescription" style="color: DarkBlue;">Defining an indexer allows you to create classes that act like "virtual arrays." Instances of that class can be accessed using the [] array access operator. Defining an indexer in C# is similar to defining operator [] in C++, but is considerably more flexible. For classes that encapsulate array- or collection-like functionality, using an indexer allows the users of that class to use the array syntax to access the class.<br /><br />Example<br /><br />The following example shows how to declare a private array field, myArray, and an indexer. Using the indexer allows direct access to the instance b[i]. The alternative to using the indexer is to declare the array as a public member and access its members, myArray[i], directly.<br /><br />// cs_keyword_indexers.cs<br />using System;<br />class IndexerClass<br />{<br /> private int [] myArray = new int[100];<br /> public int this [int index] // Indexer declaration<br /> {<br /> get<br /> {<br /> // Check the index limits.<br /> if (index <>= 100)<br /> return 0;<br /> else<br /> return myArray[index];<br /> }<br /> set<br /> {<br /> if (!(index <>= 100))<br /> myArray[index] = value;<br /> }<br /> }<br />}<br /><br />public class MainClass<br />{<br /> public static void Main()<br /> {<br /> IndexerClass b = new IndexerClass();<br /> // Call the indexer to initialize the elements #3 and #5.<br /> b[3] = 256;<br /> b[5] = 1024;<br /> for (int i=0; i<=10; i++)<br /> {<br /> Console.WriteLine("Element #{0} = {1}", i, b[i]);<br /> }<br /> }<br />}</span>EntityFrameworkCorehttp://www.blogger.com/profile/02353727592222942233noreply@blogger.com5tag:blogger.com,1999:blog-5601428630619369767.post-62823422702547280692009-05-22T03:43:00.000-07:002009-05-22T03:45:25.349-07:00Abstract Class in OOPs<p>Hi,</p><p>i find so many times developers confusing with the term Abstract or abstraction in OOPS. Here's a perfect description and definition of abstraction in OOPs. Hope it will help u better understanding of Abstract and OOPs.<br /></p><span style="font-weight: bold;">Abstraction</span><br />Abstraction is another good feature of OOPS. Abstraction means to show only the necessary details to the client of the object. Do you know the inner details of the Monitor of your PC? What happen when you switch ON Monitor? Does this matter to you what is happening inside the Monitor? No Right, Important thing for you is weather Monitor is ON or NOT. When you change the gear of your vehicle are you really concern about the inner details of your vehicle engine? No but what matter to you is that Gear must get changed that’s it!! This is abstraction; show only the details which matter to the user.<br />Let’s say you have a method "CalculateSalary" in your Employee class, which takes EmployeeId as parameter and returns the salary of the employee for the current month as an integer value. Now if someone wants to use that method. He does not need to care about how Employee object calculates the salary? An only thing he needs to be concern is name of the method, its input parameters and format of resulting member, Right?<br />So abstraction says expose only the details which are concern with the user (client) of your object. So the client who is using your class need not to be aware of the inner details like how you class do the operations? He needs to know just few details. This certainly helps in reusability of the code.<br />As I have generally seen developers are not very much comfortable with the database programming. Let’s say you are designing a class that is used to interact with the database and to perform some of database operations. Now client of your class need not to be aware of database programming, he just need to be aware of some of the details of your class and easily can perform the database operations exposed by your class without deep knowledge of database programming.<br />The best thing of abstract is that this decouples the user of the object and its implementation. So now object is easy to understand and maintain also. As if there is any change in the process of some operation. You just need to change the inner details of a method, which have no impact on the client of class.<br /><br /><br /><br />============================<br /><br /><br /><br /><br /><span style="font-weight: bold;">Abstraction means that you have some class that is more common than others that extend it</span>. By example, if you have classes Triangle and Rectangle: <code></code><pre>class Triangle<br />{<br /> public double a;<br /> public double b;<br /> public double c;<br /><br /> public double Area<br /> {<br /> get { return triangle's area }<br /> }<br />}<br /><br />class Rectangle<br />{<br /> public double a;<br /> public double b;<br /><br /> public double Area<br /> {<br /> get { return rectangle's area }<br /> }<br />}<br /></pre>These classes have something in common - they have property called Area plus also sides (a and b) but I don't see any reason to make sides abstract. Let's add also Circle and we have no point of sides at all. Now let's generalize these classes and let's create one more common class called Shape. Also, let's make it abstract class so this class cannot be created separately - it can be created only through extending. <code></code><pre>public abstract class Shape<br />{<br /> public double Area();<br />}<br /></pre> And now let's write previous classes so they extend Shape class. <code></code><pre>class Triangle : Shape<br />{<br /> public double a;<br /> public double b;<br /> public double c;<br /><br /> public double Area<br /> {<br /> get { return triangle's area }<br /> }<br />}<br /><br />class Rectangle : Shape<br />{<br /> public double a;<br /> public double b;<br /><br /> public double Area<br /> {<br /> get { return rectangle's area }<br /> }<br />}<br /></pre>So, what's the win, you may ask? Okay, not of these classes use Shape as their base class. So does Circle. In the context where we don 't care about specific properties of object we can handle all extended objects as Shape. By example, let's calculate total area of Shapes in list. <code></code><pre>List<shape> shapes = ListShapes() // contains circles, triangles and rectangles<br />double area = 0;<br /><br />foreach(Shape shape in shapes)<br /> area += shape.Area;<br /><br />// do something useful with area here<br /></pre>Without extending Shape class we should write separate loop for each shape type. And also we have to have separate methods to get different types of shapes. Now we had only one method to list shapes and one loop to handle them as one - we didn't cared about lengths of sides or radiuses or any other specific properties. Same way you can make many other abstractions. By example, you can add coordinates to Shape class if shape's positioning is required.<br /><br /><br /><br /><br />========================<br /><br /><br />Abstraction in the object oriented world generalizes the characteristics and behaviours. The following classes describe this <p>public class Mammal</p> <p>{</p> <p> public string m_color; // Abstract Charactersistic 1</p> <p> public string m_height; // Abstract Charactersistic 2</p> <p> public string m_weight; // Abstract Charactersistic 1</p> <p> public Mammal()</p> <p> {</p> <p> }</p> <p> public void Move()</p> <p> {</p> <p> // Abstract behaviour</p> <p> }</p> <p>}</p> <p>// Elephant is a Mammal hence it extends abstract class Mammal </p> <p>public class Elephant : Mammal</p> <p>{</p> <p> public string m_color = "gray"; // Gray color </p> <p> public int m_height = 120; // 10 feet or 120 inches</p> <p> public int m_weight = 1500; // 1500 pounds</p> <p> public Elephant() </p> <p> {</p> <p> }</p> <p> public void Move()</p> <p> {</p> <p> // Implement the Elephant Walks Behaviour</p> <p> }</p> <p>}</p> <p> // A whale is also a mammal hence it extends the Mammal class</p> <p>public class Whale: Mammal</p> <p>{</p> <p> public string m_color = "darkgray"; // Dark Gray color </p> <p> public int m_height = 60; // 5 feet or 60 inches</p> <p> public int m_weight = 2000; // 2000 pounds</p> <p> public Whale() </p> <p> {</p> <p> }</p> <p> public void Move()</p> <p> {</p> <p> // Implement the way a Whale swims</p> <p> }</p> <p>}</p>EntityFrameworkCorehttp://www.blogger.com/profile/02353727592222942233noreply@blogger.com1tag:blogger.com,1999:blog-5601428630619369767.post-2408598849704652482009-03-21T07:21:00.001-07:002016-01-31T15:08:12.908-08:00Multiple Selection DropDownList for asp.net<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "verdana";">Hi,<br /><br /> I have developed Multiple selection <span class="blsp-spelling-error" id="SPELLING_ERROR_0">dropdownlist</span> Custom Control. Below are the preview of control. This is a Custom Control which you can use in asp.net.<br /><br />Features :</span><br />
<ul>
<li>Allow multiple selection.</li>
<li>Support Design Time Data Binding.</li>
<li>Quick Search through the list.</li>
<li>Select / <span class="blsp-spelling-error" id="SPELLING_ERROR_1">Unselect</span> all items</li>
<li>Persist value after <span class="blsp-spelling-error" id="SPELLING_ERROR_2">postback</span>.</li>
<li>Multiple control can be use in the same page.</li>
</ul>
<span style="color: rgb(51 , 51 , 255); font-size: 130%;"><br /><a href="http://deep.k.rai.googlepages.com/MultiSelectFinalVersion2.rar" style="font-weight: bold;">Download Here</a></span><br />
<br />
<br />
<a href="http://3.bp.blogspot.com/_Qw4lBOGEQ3o/ScT4Z8DRmlI/AAAAAAAAAWw/TAkRhzBlRww/s1600-h/Preview6.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5315646584704309842" src="http://3.bp.blogspot.com/_Qw4lBOGEQ3o/ScT4Z8DRmlI/AAAAAAAAAWw/TAkRhzBlRww/s320/Preview6.PNG" style="cursor: pointer; float: left; height: 95px; margin: 0pt 10px 10px 0pt; width: 214px;" /></a><br />
<br />
<br />
<br />
<br />
<br />
------------<br />
<br />
<a href="http://1.bp.blogspot.com/_Qw4lBOGEQ3o/ScT4KTaxe0I/AAAAAAAAAWo/uPEpFriUP2Q/s1600-h/Preview5.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5315646316098976578" src="http://1.bp.blogspot.com/_Qw4lBOGEQ3o/ScT4KTaxe0I/AAAAAAAAAWo/uPEpFriUP2Q/s320/Preview5.PNG" style="cursor: pointer; float: left; height: 254px; margin: 0pt 10px 10px 0pt; width: 213px;" /></a><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
-----------<br />
<br />
<a href="http://4.bp.blogspot.com/_Qw4lBOGEQ3o/ScT4KGQ10II/AAAAAAAAAWg/F33wSqlssEQ/s1600-h/Preview4.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5315646312567656578" src="http://4.bp.blogspot.com/_Qw4lBOGEQ3o/ScT4KGQ10II/AAAAAAAAAWg/F33wSqlssEQ/s320/Preview4.PNG" style="cursor: pointer; float: left; height: 255px; margin: 0pt 10px 10px 0pt; width: 217px;" /></a><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
-------------<br />
<br />
<a href="http://4.bp.blogspot.com/_Qw4lBOGEQ3o/ScT4KCORUXI/AAAAAAAAAWY/_YX5o3Z7kvY/s1600-h/Preview3.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5315646311483134322" src="http://4.bp.blogspot.com/_Qw4lBOGEQ3o/ScT4KCORUXI/AAAAAAAAAWY/_YX5o3Z7kvY/s320/Preview3.PNG" style="cursor: pointer; float: left; height: 95px; margin: 0pt 10px 10px 0pt; width: 213px;" /></a><br />
<br />
<br />
<br />
<br />
<br />
------------<br />
<br />
<a href="http://3.bp.blogspot.com/_Qw4lBOGEQ3o/ScT4KDCohfI/AAAAAAAAAWQ/PYeuzEhXzX0/s1600-h/Preview2.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5315646311702758898" src="http://3.bp.blogspot.com/_Qw4lBOGEQ3o/ScT4KDCohfI/AAAAAAAAAWQ/PYeuzEhXzX0/s320/Preview2.PNG" style="cursor: pointer; float: left; height: 102px; margin: 0pt 10px 10px 0pt; width: 214px;" /></a><br />
<br />
<br />
<br />
<br />
<br />
<br />
-------------<br />
<br />
<a href="http://2.bp.blogspot.com/_Qw4lBOGEQ3o/ScT4J38MjZI/AAAAAAAAAWI/q7LVES4Zm8Y/s1600-h/Preview1.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5315646308722970002" src="http://2.bp.blogspot.com/_Qw4lBOGEQ3o/ScT4J38MjZI/AAAAAAAAAWI/q7LVES4Zm8Y/s320/Preview1.PNG" style="cursor: pointer; float: left; height: 257px; margin: 0pt 10px 10px 0pt; width: 218px;" /></a><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<span style="color: rgb(51 , 51 , 255); font-size: 130%;"><a href="http://deep.k.rai.googlepages.com/MultiSelectFinalVersion2.rar" style="font-weight: bold;">Download Here</a><br /></span><br />
<br />
<br />
<br />
Regards<br />
<span class="blsp-spelling-error" id="SPELLING_ERROR_3">Deepak</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_4">Rai</span><br />
+919823138839<br />
deep.k.rai@gmail.com<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/oBml5Jn4Cec/0.jpg" src="https://www.youtube.com/embed/oBml5Jn4Cec?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /><iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/iNF3_QocF7w/0.jpg" src="https://www.youtube.com/embed/iNF3_QocF7w?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br /></div>
EntityFrameworkCorehttp://www.blogger.com/profile/02353727592222942233noreply@blogger.com37tag:blogger.com,1999:blog-5601428630619369767.post-21229384463009329832009-03-06T05:58:00.000-08:002009-03-06T06:05:31.667-08:00Dropdownlist width in IE<a href="http://www.hedgerwow.com/360/dhtml/ui_select_with_fixed_width/demo.php">DEMO</a><br /><br /><br />In IE, the dropdown-list takes the same width as the dropbox (i hope i am making sense) whereas in Firefox the dropdown-list's width varies according to the content.<br /><br />This basically means that i have to make sure that the dropbox has to be wide enough to display the longest selection possible. this makes my page look very ugly :(<br /><br />Is there any workaround for this problem? How can i uses CSS to set different widths for dropbox and the dropdownlist?<br /><br /><br /><br /><br />Creating your own drop down list is more of a pain than it's worth. You can use some javascript to make the IE drop down work.<br /><br />Check out this solution here: http://www.hedgerwow.com/360/dhtml/ui_select_with_fixed_width/demo.php<br /><br />http://www.hedgerwow.com/360/dhtml/ui_select_with_fixed_width/ie-select-width-fix.js<br /><br />It uses a bit of the YUI library and a special extension for fixing IE select boxes.<br /><br />You will need to include the following and wrap your elements in a<br /><br />Put these before the body tag of your page:<br /><br /><br /><pre class="prettyprint"><code><span class="pun"><</span><span class="tag">script</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"http://us.js2.yimg.com/us.js.yimg.com/lib/common/utils/2/yahoo_2.0.0-b3.js"</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"text/javascript"</span><span class="pun">></span><span class="pln"><br /></span><span class="pun"><!--</span--><span class="tag">script</span><span class="pun">></span><span class="pln"><br /></span><span class="pun"><</span><span class="tag">script</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"http://us.js2.yimg.com/us.js.yimg.com/lib/common/utils/2/event_2.0.0-b3.js"</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"text/javascript"</span><span class="pun">></span><span class="pln"><br /></span><span class="pun"><!--</span--><span class="tag">script</span><span class="pun">></span><span class="pln"><br /></span><span class="pun"><</span><span class="tag">script</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"http://us.js2.yimg.com/us.js.yimg.com/lib/common/utils/2/dom_2.0.2-b3.js"</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"text/javascript"</span><span class="pun">></span><span class="pln"><br /></span><span class="pun"><!--</span--><span class="tag">script</span><span class="pun">></span><span class="pln"><br /></span><span class="pun"><</span><span class="tag">script</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"ie-select-width-fix.js"</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"text/javascript"</span><span class="pun">></span><span class="pln"><br /></span><span class="pun"><!--</span--><span class="tag">script</span><span class="pun">></span><span class="pln"><br /></span><span class="pun"><</span><span class="tag">script</span><span class="pun">></span><span class="pln"><br /></span><span class="com">// for each select box you want to affect, apply this:</span><span class="pln"><br /></span><span class="kwd">var</span><span class="pln"> s1 </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> YAHOO</span><span class="pun">.</span><span class="typ">Hack</span><span class="pun">.</span><span class="typ">FixIESelectWidth</span><span class="pun">(</span><span class="pln"> </span><span class="str">'s1'</span><span class="pln"> </span><span class="pun">);</span><span class="pln"> </span><span class="com">// s1 is the ID of the select box you want to affect</span><span class="pln"><br /></span><span class="pun"><!--</span--><span class="tag">script</span><span class="pun">></span><span class="pln"><br /></span></span></span></span></span></span></code></pre><br /><br /> <div class="post-text"><p>Creating your own drop down list is more of a pain than it's worth. You can use some javascript to make the IE drop down work.</p> <p>Check out this solution here: <a href="http://www.hedgerwow.com/360/dhtml/ui_select_with_fixed_width/demo.php" rel="nofollow">http://www.hedgerwow.com/360/dhtml/ui_select_with_fixed_width/demo.php</a></p> <p><a href="http://www.hedgerwow.com/360/dhtml/ui_select_with_fixed_width/ie-select-width-fix.js" rel="nofollow">http://www.hedgerwow.com/360/dhtml/ui_select_with_fixed_width/ie-select-width-fix.js</a></p> <p>It uses a bit of the YUI library and a special extension for fixing IE select boxes.</p> <p>You will need to include the following and wrap your elements in a </p> <p>Put these before the body tag of your page:</p> <pre class="prettyprint"><code><span class="pun"><</span><span class="tag">script</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"http://us.js2.yimg.com/us.js.yimg.com/lib/common/utils/2/yahoo_2.0.0-b3.js"</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"text/javascript"</span><span class="pun">></span><span class="pln"><br /></span><span class="pun"><!--</span--><span class="tag">script</span><span class="pun">></span><span class="pln"><br /></span><span class="pun"><</span><span class="tag">script</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"http://us.js2.yimg.com/us.js.yimg.com/lib/common/utils/2/event_2.0.0-b3.js"</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"text/javascript"</span><span class="pun">></span><span class="pln"><br /></span><span class="pun"><!--</span--><span class="tag">script</span><span class="pun">></span><span class="pln"><br /></span><span class="pun"><</span><span class="tag">script</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"http://us.js2.yimg.com/us.js.yimg.com/lib/common/utils/2/dom_2.0.2-b3.js"</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"text/javascript"</span><span class="pun">></span><span class="pln"><br /></span><span class="pun"><!--</span--><span class="tag">script</span><span class="pun">></span><span class="pln"><br /></span><span class="pun"><</span><span class="tag">script</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"ie-select-width-fix.js"</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"text/javascript"</span><span class="pun">></span><span class="pln"><br /></span><span class="pun"><!--</span--><span class="tag">script</span><span class="pun">></span><span class="pln"><br /></span><span class="pun"><</span><span class="tag">script</span><span class="pun">></span><span class="pln"><br /></span><span class="com">// for each select box you want to affect, apply this:</span><span class="pln"><br /></span><span class="kwd">var</span><span class="pln"> s1 </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> YAHOO</span><span class="pun">.</span><span class="typ">Hack</span><span class="pun">.</span><span class="typ">FixIESelectWidth</span><span class="pun">(</span><span class="pln"> </span><span class="str">'s1'</span><span class="pln"> </span><span class="pun">);</span><span class="pln"> </span><span class="com">// s1 is the ID of the select box you want to affect</span><span class="pln"><br /></span><span class="pun"><!--</span--><span class="tag">script</span><span class="pun">></span><span class="pln"><br /></span></span></span></span></span></span></code></pre> <p>Post acceptance edit:</p> <p>You can also do this without the YUI library and Hack control. All you really need to do is put an onmouseover="this.style.width='auto'" onmouseout="this.style.width='100px'" (or whatever you want) on the select element. The YUI control gives it that nice animation but it's not necessary. This task can also be accomplished with jquery and other libraries (although, I haven't found explicit documentation for this)</p> <p>-- amendment to the edit: IE has a problem with the onmouseout for select controls (it doesn't consider mouseover on options being a mouseover on the select). This makes using a mouseout very tricky. The first solution is the best I've found so far.</p> </div>EntityFrameworkCorehttp://www.blogger.com/profile/02353727592222942233noreply@blogger.com6tag:blogger.com,1999:blog-5601428630619369767.post-67242339005484602032009-03-06T01:57:00.000-08:002009-03-06T02:04:50.235-08:00Exporting Euro symbol in excel from asp.net.<span style="font-family: verdana;font-size:100%;" >I was working with exporting GridView to Excel. GridView contains one column that has currency symbols. After exporting to excel all currency were displaying correctly but Euro(</span>€<span style="font-family: verdana;font-size:100%;" >) symbols got converted to something other characters like this "€" . After searching on internet i got solution. below is the solution.<br /><br /><br /> public void ExportExcel(string filename, GridView gv)<br /> {<br /> Response.ClearContent();<br /> Response.AddHeader("content-disposition", "attachment; filename=" + filename + ".xls");<br /> Response.ContentType = "application/vnd.ms-excel";<br /> StringWriter sw = new StringWriter();<br /> HtmlTextWriter htw = new HtmlTextWriter(sw);<br /> gv.RenderControl(htw);<br /> string output = sw.ToString();<br /> //////////////////////<br /> byte[] euroByte = new byte[1];<br /> euroByte[0] = (byte)128;<br /> bool isAfterFirst = false;<br /> foreach (string item in output.Split('€'))<br /> {<br /> if (isAfterFirst)<br /> {<br /> Response.OutputStream.Write(euroByte, 0, 1);<br /> }<br /> Response.Write(item);<br /> Response.Flush();<br /> isAfterFirst = true;<br /> }<br /> Response.Write("\r\n");<br /> //////////////////////<br /> Response.End();<br /> }</span>EntityFrameworkCorehttp://www.blogger.com/profile/02353727592222942233noreply@blogger.com8tag:blogger.com,1999:blog-5601428630619369767.post-1260462813812179442009-03-04T04:43:00.000-08:002009-03-05T20:15:00.104-08:00Count the record returned by SQLDataSourceprotected void SqlDataSource3_Selected(object sender, SqlDataSourceStatusEventArgs e)<br /> {<br /> GVNO.Text = "0";<br /> string gridViewTotalRowCount = e.AffectedRows.ToString();<br /> GVNO.Text = gridViewTotalRowCount;<br /> <br /> }<br /><br /><br /><!-- START CUSTOM WIDGETBUCKS CODE --><div><script src="http://api.widgetbucks.com/script/ads.js?uid=ge8s7FnsefJ9OA1q"></script></div><!-- END CUSTOM WIDGETBUCKS CODE -->EntityFrameworkCorehttp://www.blogger.com/profile/02353727592222942233noreply@blogger.com7tag:blogger.com,1999:blog-5601428630619369767.post-2215517996549395682007-12-27T22:10:00.000-08:002007-12-27T22:11:24.497-08:00Disable Selection in Web page<script type="text/javascript"><br /><br />//form tags to omit:<br />var omitformtags=["input", "textarea", "select"]<br /><br />function disableselect(e){<br />for (i = 0; i < omitformtags.length; i++)<br />if (omitformtags[i]==(e.target.tagName.toLowerCase()))<br />return;<br />return false<br />}<br /><br />function reEnable(){<br />return true<br />}<br /><br />function noSelect(){<br />if (typeof document.onselectstart!="undefined"){<br />document.onselectstart=new Function ("return false")<br />if (document.getElementsByTagName){<br />tags=document.getElementsByTagName('*')<br />for (j = 0; j < tags.length; j++){<br />for (i = 0; i < omitformtags.length; i++)<br />if (tags[j].tagName.toLowerCase()==omitformtags[i]){<br />tags[j].onselectstart=function(){<br />document.onselectstart=new Function ('return true')<br />}<br />if (tags[j].onmouseup!==null){<br />var mUp=tags[j].onmouseup.toString()<br />mUp='document.onselectstart=new Function (\'return false\');\n'+mUp.substr(mUp.indexOf('{')+2,mUp.lastIndexOf('}')-mUp.indexOf('{')-3);<br />tags[j].onmouseup=new Function(mUp);<br />}<br />else{<br />tags[j].onmouseup=function(){<br />document.onselectstart=new Function ('return false')<br />}<br />}<br />}<br />}<br />}<br />}<br />else{<br />document.onmousedown=disableselect<br />document.onmouseup=reEnable<br />}<br />}<br /><br />window.onload=noSelect;<br /></script>EntityFrameworkCorehttp://www.blogger.com/profile/02353727592222942233noreply@blogger.com1tag:blogger.com,1999:blog-5601428630619369767.post-70974944122165563942007-11-29T22:35:00.000-08:002007-11-30T00:03:32.736-08:00Writing all data from Dataset to XML (with null value too).<div class="Section1"><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;color:blue;" >Imports</span><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" > Microsoft.VisualBasic<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;color:blue;" >Imports</span><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" > System.Data<o:p></o:p></span></p><br /><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;color:blue;" >Imports</span><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><br />System.Data.OracleClient<o:p></o:p></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><o:p></o:p></span></p><br /><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;color:blue;" >Public</span><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" > <span style="color:blue;">Class</span> DatasetToXML<o:p></o:p></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><span style="mso-spacerun: yes"></span><span style="color:blue;">Inherits</span><br />System.Web.UI.Page<o:p></o:p></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><o:p></o:p></span></p><br /><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><span style="mso-spacerun: yes"></span><span style="color:blue;">Dim</span> con <span style="color:blue;">As</span> <span style="color:blue;">New</span><br />OracleConnection(<span style="color:maroon;">" DATA SOURCE=ORACLE;PERSIST<br />SECURITY INFO=TRUE;USER ID=DF_TRUCK;PASSWORD=DF_TRUCK;UNICODE=TRUE "</span>)<o:p></o:p></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><o:p></o:p></span></p><br /><br /><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><span style="mso-spacerun: yes"></span><span style="color:blue;">Public</span> <span style="color:blue;">Function</span> DS2XML(<span style="color:blue;">ByVal</span><br />ds <span style="color:blue;">As</span> DataSet) <span style="color:blue;">As</span><br /><span style="color:blue;">Boolean<o:p></o:p></span></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><span style="mso-spacerun: yes"></span><span style="color:blue;">Dim</span> xs <span style="color:blue;">As</span> <span style="color:blue;">New</span><br />System.Xml.XmlWriterSettings<o:p></o:p></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><span style="mso-spacerun: yes"></span>xs.Indent = <span style="color:blue;">True<o:p></o:p></span></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><span style="mso-spacerun: yes"></span><span style="color:blue;">Dim</span> xw <span style="color:blue;">As</span> System.Xml.XmlWriter =<br />System.Xml.XmlWriter.Create(Server.MapPath(<span style="color:maroon;">"~/IEData/abc.xml"</span>),<br />xs)<o:p></o:p></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><span style="mso-spacerun: yes"></span>xw.WriteStartElement(<span style="color:maroon;">"DF_TRUCK"</span>) <span style="color:green;">'Name<br />of schema<o:p></o:p></span></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><span style="mso-spacerun: yes"></span><span style="color:blue;">For</span> <span style="color:blue;">Each</span> dt <span style="color:blue;">As</span> DataTable <span style="color:blue;">In</span> ds.Tables<o:p></o:p></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><span style="mso-spacerun: yes"></span><span style="color:blue;">For</span><br /><span style="color:blue;">Each</span> dr <span style="color:blue;">As</span><br />DataRow <span style="color:blue;">In</span> ds.Tables(dt.TableName).Rows<o:p></o:p></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" >xw.WriteStartElement(ds.Tables(dt.TableName).TableName)<o:p></o:p></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><span style="mso-spacerun: yes"></span><span style="color:blue;">For</span><br />i <span style="color:blue;">As</span> <span style="color:blue;">Integer</span> =<br />0 <span style="color:blue;">To</span> ds.Tables(dt.TableName).Columns.Count - 1<o:p></o:p></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" >xw.WriteElementString(ds.Tables(dt.TableName).Columns(i).ColumnName,<br />IIf(IsDBNull(dr.Item(i)), <span style="color:blue;">String</span>.Empty,<br />dr.Item(i)))<o:p></o:p></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><span style="mso-spacerun: yes"></span><span style="color:blue;">Next<o:p></o:p></span></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><span style="mso-spacerun: yes"></span>xw.WriteEndElement()<o:p></o:p></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><span style="mso-spacerun: yes"></span><span style="color:blue;">Next<o:p></o:p></span></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><span style="mso-spacerun: yes"></span><span style="color:blue;">Next<o:p></o:p></span></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><span style="mso-spacerun: yes"></span>xw.WriteEndElement()<o:p></o:p></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><span style="mso-spacerun: yes"></span>xw.Flush()<o:p></o:p></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><span style="mso-spacerun: yes"></span>xw.Close()<o:p></o:p></span></p><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" ><span style="mso-spacerun: yes"></span><span style="color:blue;">End</span> <span style="color:blue;">Function<o:p></o:p></span></span></p><br /><br /><p class="MsoNormal" style="mso-layout-grid-align: none"><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;color:blue;" >End</span><span style="mso-no-proof: yes;font-family:'Courier New';font-size:10;" > <span style="color:blue;">Class</span></span></p></div>EntityFrameworkCorehttp://www.blogger.com/profile/02353727592222942233noreply@blogger.com0tag:blogger.com,1999:blog-5601428630619369767.post-91240145565537641852007-08-08T01:53:00.000-07:002007-08-08T02:06:35.875-07:00Solution of MsgBox in ASP.net<div class="Section1"><br /><br /><p class="MsoNormal"><i style="mso-bidi-font-style: normal"><span style="mso-spacerun: yes"> </span>You can't use <span class="SpellE">MessageBox</span><br />in ASP.NET. You don't have any graphical user<br /><br />interface, so there is nowhere that you can display the <span class="SpellE">messagebox</span>.<br /><br /><br /><br /><span style="mso-spacerun: yes"> </span>If you were allowed to use a <span class="SpellE">messagebox</span> in ASP.NET, it would pop up on<br /><br />the web server where <span class="SpellE">noone</span> would see it, and IIS<br />would hang indefinitely<br /><br />waiting for someone to click it.<?xml:namespace prefix = o /><o:p></o:p></i></p><br /><br /><p class="MsoNormal"><o:p> </o:p></p><br /><br /><p class="MsoNormal"><i style="mso-bidi-font-style: normal"><span style="mso-spacerun: yes"> </span>Remember that this code is running on<br />the web server in a process that is not running as the currently logged on<br />(to the server) user. Therefore the process will be running under its own<br />Window Station, and will not be able to interact with the desktop in any way.<br />Consequently, you cannot display a <span class="SpellE">MessageBox</span> on the<br />server without setting the flags to indicate that you want to display it on the<br />currently logged in user's Window Station (effectively the<br />default desktop).<br /><br /><br /><br /><span style="mso-spacerun: yes"> </span>Typically, displaying message<br />boxes on servers is regarded as a very bad thing, as a lot of servers are<br />locked in computer rooms and there is no user to dismiss them. Therefore, are<br />you really sure that you want to do this, or would you really prefer to display<br />a message box on the browser (using client-side JavaScript)?</i><i style="mso-bidi-font-style: normal"><span style="font-family:Verdana;"><o:p></o:p></span></i></p><br /><br /><p class="MsoNormal"><span style="font-family:Verdana;font-size:10;"><o:p> </o:p></span></p><br /><br /><p class="MsoNormal"><b style="mso-bidi-font-weight: normal"><u><span style="FONT-SIZE: 11pt;font-family:Verdana;font-size:10;" >Here I<br />am showing another way to display the <span class="SpellE">MsgBox</span> in page.<o:p></o:p></span></u></b></p><br /><br /><p class="MsoNormal"><span style="font-family:Verdana;font-size:10;"><o:p> </o:p></span></p><br /><br /><p class="MsoNormal"><span style="font-family:Verdana;font-size:10;">This<br />shows an alert on <span class="SpellE">page_load</span> (or else).<br /><br />No need to create an instance of the class.<br /><br />Example:<br /><br /></span><span style="font-family:Courier;font-size:10;"> <br /> Protected Sub <span class="SpellE">Page_Load</span>(<span class="SpellE">ByVal</span><br />sender As Object, <span class="SpellE">ByVal</span> e As <span class="SpellE">System.EventArgs</span>)<br />Handles <span class="SpellE">Me.Load</span><br /><br /> <span class="SpellE">cmsgbox.Client_Alert_OnLoad</span>("Hello<br />world")<br /><br /> End Sub<br /><br /></span><span style="font-family:Verdana;font-size:10;"><br /><br />Note that you won't need to 'format' special characters like \ and " etc..<br /><br /><br /><br /><br /></span><span style="font-family:'Courier New';font-size:10;"><br /><br /> Public Shared Sub <span class="SpellE">Client_Alert_OnLoad</span>(<span class="SpellE">ByVal</span> <span class="SpellE">sMessage</span> As String,<br />Optional <span class="SpellE">ByVal</span> <span class="SpellE">sURL</span> As<br />String = "")<br /><br /> On Error Resume Next<br /><br /> Dim <span class="SpellE">str</span> As String<br /><br /> Dim P As <span class="SpellE">System.Web.UI.Page</span><br />= <span class="SpellE">CType</span>(<span class="SpellE">System.Web.HttpContext.Current.Handler</span>,<br /><span class="SpellE">System.Web.UI.Page</span>)<br /><br /> Dim <span class="SpellE">sb</span> As New <span class="SpellE">StringBuilder</span>(Len(<span class="SpellE">sMessage</span>) * 5)<br /><br /> <span class="SpellE">sMessage</span> = <span class="SpellE">sMessage.Replace</span>(<span class="SpellE">Chr</span>(0),<br />"")<br /><br /> For Each c As String In <span class="SpellE">sMessage</span><br />: <span class="SpellE">sb.Append</span>("\x" & Right("0"<br />& Hex(<span class="SpellE">Asc</span>(c)), 2)) : Next<br /><br /> <span class="SpellE">str</span> = <span class="SpellE">vbCrLf</span> & "<script language=<span class="SpellE">javascript</span>>"<br />& <span class="SpellE">vbCrLf</span><br /><br /> <span class="SpellE">str</span> = <span class="SpellE">str</span> & " alert('" & <span class="SpellE">sb.ToString</span> &amp; "');" & <span class="SpellE">vbCrLf</span><br /><br /><br /> If Len(<span class="SpellE">sURL</span>) > 0<br />Then <span class="SpellE">str</span> = <span class="SpellE">str</span> & "<br /> <span class="SpellE">window.location</span>='" & <span class="SpellE">sURL</span> &amp; "';" & <span class="SpellE">vbCrLf</span><br /><br /><br /> <span class="SpellE">str</span> = <span class="SpellE">str</span> & "</script>" & <span class="SpellE">vbCrLf</span><br /><br /> <span class="SpellE">P.ClientScript.RegisterStartupScript</span>(<span class="SpellE">P.GetType</span>, "", <span class="SpellE">str</span>)<br /><br /> End Sub<o:p></o:p></span></p><br /><br /><p class="MsoNormal"><span style="font-family:'Courier New';font-size:10;"><o:p> </o:p></span></p><br /><br /><p class="MsoNormal"><span style="font-family:'Courier New';font-size:10;"><o:p> </o:p></span></p><br /><br /><div style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 1pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 2.25pt double"><br /><br /><p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-bottom-alt: double windowtext 2.25pt; mso-padding-alt: 0in 0in 1.0pt 0in"><span style="font-family:'Courier New';font-size:10;"><o:p> </o:p></span></p><br /><br /></div><br /><br /><p class="MsoNormal"><span style="font-family:'Courier New';font-size:10;"><o:p> </o:p></span></p><br /><br /><p class="MsoNormal"><span style="font-family:Verdana;font-size:10;">Example:<br /><br /></span><span class="SpellE"><span style="font-family:Courier;font-size:10;">cmsgbox.Client_Confirm_<span class="GramE">OnButton</span></span></span><span class="GramE"><span style="font-family:Courier;font-size:10;">(</span></span><span style="font-family:Courier;font-size:10;">Me.Button1, <span class="SpellE">Chr</span>(34)<br />& "hello world \/-=" & <span class="SpellE">Chr</span>(34)<br />& <span class="SpellE">vbCrLf</span> & "ok to format c:?")<br /><br /></span><span style="font-family:Verdana;font-size:10;"><br /><br /></span><span style="font-family:'Courier New';font-size:10;"><br /><br /> Public Shared Sub <span class="SpellE">Client_Confirm_OnButton</span>(<span class="SpellE">ByRef</span> <span class="SpellE">oButton</span> As <span class="SpellE">System.Web.UI.WebControls.Button</span>, <span class="SpellE">ByVal</span><br /><span class="SpellE">sMessage</span> As String)<br /><br /> <span style="mso-tab-count: 1"> </span>On Error Resume Next<br /><br /> <span style="mso-tab-count: 1"> </span>Dim <span class="SpellE">str</span><br />As String<br /><br /> <span style="mso-tab-count: 1"> </span>Dim <span class="SpellE">sFunction</span><br />As String = ("<span class="SpellE">msgbox_confirm</span>_" & <span class="SpellE">oButton.ClientID</span>).Replace("$", "_")<br /><br /> <span style="mso-tab-count: 1"> </span>Dim <span class="SpellE">sb</span><br />As New <span class="SpellE">StringBuilder</span>(Len(<span class="SpellE">sMessage</span>)<br />* 5)<br /><br /> <span style="mso-tab-count: 1"> </span><span class="SpellE">sMessage</span><br />= <span class="SpellE">sMessage.Replace</span>(<span class="SpellE">Chr</span>(0),<br />"")<br /><br /> <span style="mso-tab-count: 1"> </span>For Each c As String In <span class="SpellE">sMessage</span> : <span class="SpellE">sb.Append</span>("\x"<br />& Right("0" & Hex(<span class="SpellE">Asc</span>(c)), 2)) :<br />Next<br /><br /> <span style="mso-tab-count: 1"> </span><span class="SpellE">str</span><br />= <span class="SpellE">vbCrLf</span> & "<script language=<span class="SpellE">javascript</span>>" & <span class="SpellE">vbCrLf</span><br /><br /><br /> <span style="mso-tab-count: 1"> </span><span class="SpellE">str</span><br />= <span class="SpellE">str</span> & "" & <span class="SpellE">vbCrLf</span><br /><br /><br /> <span style="mso-tab-count: 1"> </span><span class="SpellE">str</span><br />= <span class="SpellE">str</span> & "function " & <span class="SpellE">sFunction</span> &amp; "()" & <span class="SpellE">vbCrLf</span><br /><br /><br /> <span class="SpellE">str</span> = <span class="SpellE">str</span><br />& " if ( !<span class="SpellE">window.confirm</span>('"<br />& <span class="SpellE">sb.ToString</span> &amp; "') ) {"<br /><br /> <span style="mso-tab-count: 1"> </span><span class="SpellE">str</span><br />= <span class="SpellE">str</span> & " <span class="SpellE">window.event.returnValue</span><br />= false;" & <span class="SpellE">vbCrLf</span><br /><br /> <span style="mso-tab-count: 1"> </span><span class="SpellE">str</span><br />= <span class="SpellE">str</span> & " return 0;" & <span class="SpellE">vbCrLf</span><br /><br /> <span style="mso-tab-count: 1"> </span><span class="SpellE">str</span><br />= <span class="SpellE">str</span> & " }" & <span class="SpellE">vbCrLf</span><br /><br /> <span style="mso-tab-count: 1"> </span><span class="SpellE">str</span><br />= <span class="SpellE">str</span> & "}" & <span class="SpellE">vbCrLf</span><br /><br /><br /> <span style="mso-tab-count: 1"> </span><span class="SpellE">str</span><br />= <span class="SpellE">str</span> & "</script>" & <span class="SpellE">vbCrLf</span><br /><br /> <span style="mso-tab-count: 1"> </span><span class="SpellE">oButton.OnClientClick</span><br />= "<span class="SpellE">javascript</span>:" & <span class="SpellE">sFunction</span><br />&amp; "();"<br /><br /> <span style="mso-tab-count: 1"> </span><span class="SpellE">oButton.Page.ClientScript.RegisterStartupScript</span>(<span class="SpellE">oButton.Page.GetType</span>, <span class="SpellE">sFunction</span>, <span class="SpellE">str</span>)<br /><br /> End Sub<o:p></o:p></span></p><br /><br /><p class="MsoNormal"><span style="font-family:'Courier New';font-size:10;"><o:p> </o:p></span></p><br /><br /><p class="MsoNormal"><span style="font-family:'Courier New';font-size:10;"><o:p> </o:p></span></p><br /><br /><p class="MsoNormal"><o:p> </o:p></p><br /></div>EntityFrameworkCorehttp://www.blogger.com/profile/02353727592222942233noreply@blogger.com2tag:blogger.com,1999:blog-5601428630619369767.post-9820592498065636992007-07-26T02:11:00.000-07:002009-03-05T20:43:13.396-08:00Sending E-Mail from your .NET application using your GMail Account<h2>Introduction</h2><br /><p><br />Most independent developers like to include a msg sending feature in their application.<br />Well atleast I tried to.. Of course it is not a problem for a user with a smtp server<br />access or a registered domain with an smtp server access. But unfortunately I had<br />none of them. I use msn, gmail and yahoo for my mailing needs. Unfortunately yahoo<br />does not offer smtp or pop access for their general/basic/free users. And msn it<br />is not that reliable coz I was expecting a lot of mails to be sent and also to recive<br />and as far as I know they also donot give you pop/smtp access!.<br /></p><br /><h2><br />Typical Example you will find in internet</h2><br /><p><br />So I really Hunted for a code segment that help me use my free gmail account to<br />send E-MAIL from my .NET account. <a href="http://www.systemwebmail.com/">http://www.systemwebmail.com/</a><br />is a complete referance library and FAQ's regarding to the <strong>System.Web.Mail</strong><br />namespase. And my code is basically I joined different pieces together. And Came<br />up with succes. Normally you will find thousands of sites offering the code below<br />which has a very little use. Like<br /></p><br /><pre lang="cs"><br /> MailMessage mail = <span class="cs-keyword">new</span> MailMessage();<br /> mail.To = <span class="cpp-string">"xxxx@mailserver.com"</span>;<br /> mail.Bcc = <span class="cpp-string">"yyyy@mailserver.com; user3@mailserver.net"</span>;<br /> mail.From = <span class="cpp-string">"your email or name"</span>;<br /> mail.Subject = <span class="cpp-string">"your subject"</span>;<br /> mail.Body = <span class="cpp-string">"your subject"</span>;<br /> SmtpMail.SmtpServer = <span class="cpp-string">"10.4.1.2"</span>; <span class="cs-comment">//your<br /> real server goes here or</span><br /> <span class="cs-comment">//you can add the address like "smtp.mailserver.com"</span><br /> SmtpMail.Send(mail);<br /></pre><br /><p><br /></p><br /><p><br />Well most smtp server require authentication and sometimes SSL connection so what<br />then? The code above is <strong>USELESS</strong>. So what are the things you need<br />to add? There you go.</p><br /><p><br /><code></code><br /></p><br /><pre lang="cs" id="pre1" style="MARGIN-TOP: 0px"><br /><span class="cpp-comment">//This is fully working tested code. Copy and paste the code</span><br /><span class="cpp-comment">//Edit some parts(UserName, password) and ENJOY!</span><br /><span class="cpp-keyword">public</span> string sendMail (string from, string to, string cc, string bcc, string subject, string body) {<br /> <span class="cpp-comment">// Mail initialization</span><br /> MailMessage mailMsg = <span class="cpp-keyword">new</span> MailMessage();<br /> mailMsg.From = from;<br /> mailMsg.To = to;<br /> mailMsg.Cc = cc;<br /> mailMsg.Bcc = bcc;<br /> mailMsg.Subject = subject;<br /> mailMsg.BodyFormat = MailFormat.Text;<br /> mailMsg.Body = body;<br /> mailMsg.Priority = MailPriority.High;<br /> <span class="cpp-comment">// Smtp configuration</span><br /> SmtpMail.SmtpServer = <span class="cpp-string">"smtp.gmail.com"</span>;<br /> <span class="cpp-comment">// - smtp.gmail.com use smtp authentication</span><br /> mailMsg.Fields.Add(<span class="cpp-string">"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"</span>, <span class="cpp-string">"1"</span>);<br /> mailMsg.Fields.Add(<span class="cpp-string">"http://schemas.microsoft.com/cdo/configuration/sendusername"</span>, <span class="cpp-string">"myemail@gmail.com"</span>);<br /> mailMsg.Fields.Add(<span class="cpp-string">"http://schemas.microsoft.com/cdo/configuration/sendpassword"</span>, <span class="cpp-string">"mypassword"</span>);<br /> <span class="cpp-comment">// - smtp.gmail.com use port 465 or 587</span><br /> mailMsg.Fields.Add(<span class="cpp-string">"http://schemas.microsoft.com/cdo/configuration/smtpserverport"</span>, <span class="cpp-string">"465"</span>);<br /> <span class="cpp-comment">// - smtp.gmail.com use STARTTLS (some call this SSL)</span><br /> mailMsg.Fields.Add(<span class="cpp-string">"http://schemas.microsoft.com/cdo/configuration/smtpusessl"</span>, <span class="cpp-string">"true"</span>);<br /> <span class="cpp-comment">// try to send Mail</span><br /> <span class="cpp-keyword">try</span><br /> {<br /> SmtpMail.Send(mailMsg);<br /> <span class="cpp-keyword">return</span> <span class="cpp-string">""</span>;<br /> }<br /> <span class="cpp-keyword">catch</span> (Exception ex)<br /> {<br /> <span class="cpp-keyword">return</span> ex.Message;<br /> }<br />}<br /></pre><br /></code><h2><br />How to use</h2><br /><p><br />Copy the above methods and paste in visual studio IDE or any text editor you use.<br />Add a referance to <b>System.Web or System.Web.Mail dll</b> change your account<br />info like your mail address, password, etc and Enjoy</p><br /><h2><br />Explanation to the code</h2><br /><p><br />So what is happening on the example? See<br /><br /><b>step 1: </b>Create a mail msg object and asign the basic parts like from, To,<br />cc, bcc subject, body.<br /><br /><b>step 2:</b> Add some config settings in fields collection of the mailMessage<br />object. Type of authentication we use basic authentication and your user name, password,<br />smtp servers port number that you will be using. for example:<code></code></p><br /><pre lang="cs"><br /><span class="cpp-comment">//basic authentication</span><br />mailMsg.Fields.Add(<span class="cpp-string">"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"</span>, <span class="cpp-string">"1"</span>);<br /><span class="cpp-comment">//sender email address</span><br />mailMsg.Fields.Add(<span class="cpp-string">"http://schemas.microsoft.com/cdo/configuration/sendusername"</span>, <span class="cpp-string">"myemail@gmail.com"</span>);<br /><span class="cpp-comment">//plaintext password. </span><br /><span class="cpp-comment">//you can encrypt your password and keep in a config file<br /> when you parse just decrypt it</span><br />mailMsg.Fields.Add(<span class="cpp-string">"http://schemas.microsoft.com/cdo/configuration/sendpassword"</span>, <span class="cpp-string">"mypassword"</span>);<br /><span class="cpp-comment">// port number - smtp.gmail.com use port 465 or 587. use anyone<br /> of them<br /><br /> you can even make some grouping so different groups use different port to share<br /> the load on server</span><br />mailMsg.Fields.Add(<span class="cpp-string">"http://schemas.microsoft.com/cdo/configuration/smtpserverport"</span>, <span class="cpp-string">"465"</span>); <br /></pre><br /></code>gmail username require full gmail address as username and you can use /connect<br />to any of the port.<br /><br /><br /><b>step 3: </b>This is the coolest and most important part that I had a lot of time<br />to spend to discover.<pre lang="cs"><br />mailMsg.Fields.Add(<span class="cpp-string">"http://schemas.microsoft.com/cdo/configuration/smtpusessl"</span>, <span class="cpp-string">"true"</span>);<br /><span class="cs-comment">//Cool. Ha? Donot Change! This part is a must if you want to<br /> access GMAIL's SMTP server</span></pre><br />This line says/declares that your smtp server requires SSL connection which is very<br />much true/necessary for accessing to gmail's SMTP server.<br /><br /><b>step 4: </b>assign the smtp server name in System.Web.Mail.SmtpMail class's Smtp<br />server object like:<pre lang="cs"><br />SmtpMail.SmtpServer = <span class="cpp-string">"smtp.gmail.com"</span>;</pre><br />you can also set the priority of your mail by<br /><pre lang="cs"><br />mailMsg.Priority = MailPriority.High;<span class="cs-comment">// MailPriority is an<br /> enum. It has High,Low, Normal option</span></pre><br /><b>step 5: </b>call the send method of System.Web.Mail.SmtpMail. e.g.<br /><pre lang="cs"><br />System.Web.Mail.SmtpMail.Send(myMailMsg);</pre><br /><p><br /></p><br /><h2><br />.NET2.0 Version</h2><br /><p><br />Some Changes are required for .NET v2.0 as .NET2.0 Mail is much organised and stable<br />and so many extrafeatures. So In the Update I am including .NET2.0 version of my<br />code.</p><br /><code><br /><pre lang="cs" id="pre7" style="MARGIN-TOP: 0px"><br />using System;<br />using System.Collections.Generic;<br />using System.ComponentModel;<br />using System.Data;<br />using System.Drawing;<br />using System.Text;<br />using System.Windows.Forms;<br />using System.Net;<br />using System.Net.Mail;<br />using System.Net.Mime;<br /><span class="cpp-comment">//Mime is Not necerrary if you dont change the msgview and<br /></span><br /><span class="cpp-comment">//if you dont add custom/extra headers </span><br />using System.Threading;<br /><br /><span class="cpp-keyword">namespace</span> SendMailUsingGmail<br />{<br /> <span class="cpp-keyword">public</span> partial <span class="cpp-keyword">class</span> Form1 : Form<br /> {<br /> <span class="cpp-keyword">public</span> Form1()<br /> {<br /> InitializeComponent();<br /> }<br /> <br /> <span class="cpp-keyword">static</span> <span class="cpp-keyword">bool</span> mailSent = <span class="cpp-keyword">false</span>;<br /><br /> <span class="cpp-keyword">public</span> <span class="cpp-keyword">void</span> SendMail()<br /> {<br /> <span class="cpp-comment">//Builed The MSG</span><br /> System.Net.Mail.MailMessage msg = <span class="cpp-keyword">new</span> System.Net.Mail.MailMessage();<br /> msg.To.Add(<span class="cpp-string">"reciver@gmail.com"</span>);<br /> msg.To.Add(<span class="cpp-string">"another.reciver@yahoo.com"</span>);<br /> msg.From = <span class="cpp-keyword">new</span> MailAddress(<span class="cpp-string">"dummy@gmail.com"</span>, <span class="cpp-string">"One Ghost"</span>,System.Text.Encoding.UTF8);<br /> msg.Subject = <span class="cpp-string">"Test mail using .net2.0"</span>;<br /> msg.SubjectEncoding = System.Text.Encoding.UTF8;<br /> msg.Body = <span class="cpp-string">"This is my msg Body"</span>;<br /> msg.BodyEncoding = System.Text.Encoding.UTF8;<br /> msg.IsBodyHtml = <span class="cpp-keyword">false</span>;<br /> msg.Priority = MailPriority.High; <br /> <br /> <span class="cpp-comment">//Add the Creddentials</span><br /> SmtpClient client = <span class="cpp-keyword">new</span> SmtpClient();<br /> client.Credentials = <span class="cpp-keyword">new</span> System.Net.NetworkCredential(<span class="cpp-string">"dummy@gmail.com"</span>, <span class="cpp-string">"SecretPass"</span>);<br /> client.Port = <span class="cpp-literal">587</span>;<span class="cpp-comment">//or use<br /> 587 </span><br /> client.Host = <span class="cpp-string">"smtp.gmail.com"</span>;<br /> client.EnableSsl = <span class="cpp-keyword">true</span>;<br /> client.SendCompleted += <span class="cpp-keyword">new</span> SendCompletedEventHandler(client_SendCompleted);<br /> object userState=msg;<br /> <span class="cpp-keyword">try</span><br /> {<br /> <span class="cpp-comment">//you can also call client.Send(msg)</span><br /> client.SendAsync(msg, userState); <br /> }<br /> <span class="cpp-keyword">catch</span> (System.Net.Mail.SmtpException ex)<br /> {<br /> MessageBox.Show(ex.Message, <span class="cpp-string">"Send Mail Error"</span>);<br /> }<br /> }<br /><br /> <span class="cpp-keyword">void</span> client_SendCompleted(object sender, AsyncCompletedEventArgs e)<br /> {<br /> MailMessage mail = (MailMessage)e.UserState;<br /> string subject = mail.Subject;<br /><br /> <span class="cpp-keyword">if</span> (e.Cancelled)<br /> {<br /> string cancelled = string.Format(<span class="cpp-string">"[{0}] Send canceled."</span>, subject);<br /> MessageBox.Show(cancelled); <br /> }<br /> <span class="cpp-keyword">if</span> (e.Error != null)<br /> {<br /> string error = String.Format(<span class="cpp-string">"[{0}] {1}"</span>, subject, e.Error.ToString());<br /> MessageBox.Show(error); <br /> }<br /> <span class="cpp-keyword">else</span><br /> {<br /> MessageBox.Show(<span class="cpp-string">"Message sent."</span>);<br /> }<br /> mailSent = <span class="cpp-keyword">true</span>;<br /> }<br /><br /> <span class="cpp-keyword">private</span> <span class="cpp-keyword">void</span> button1_Click(object sender, EventArgs e)<br /> {<br /> <span class="cpp-keyword">this</span>.SendMail();<br /> }<br /> }<br />}<br /></pre><br /></code><br /><h2><br />Limitation of this code</h2><br /><p><br />This code may/will not work with .NET framework v1.0. Because the MailMessage object<br />of .NETv1.0 does not have the <b>MailMessage.Fields</b> Collection. This was added<br />in .NETv1.1. So it works fine with .NETv1.1 and v2.0.<br /></p><br /><h2><br />conclusion</h2><br /><p><br />The send method does not return anything. But you can add some mechanism(like counter)<br />to keep track of send message or even keep the return type of your method as a mailmessage<br />type so that u can save to database for security reasons.</p><br /><br /><br /><script type="text/javascript"><br />var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");<br />document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));<br /></script><br /><script type="text/javascript"><br />try {<br />var pageTracker = _gat._getTracker("UA-5445781-3");<br />pageTracker._trackPageview();<br />} catch(err) {}</script>EntityFrameworkCorehttp://www.blogger.com/profile/02353727592222942233noreply@blogger.com0