Thursday, 19 April 2012

show alert message from server side using javascript


VB

Page.ClientScript.RegisterStartupScript(Me.GetType(), "showalert", alert('Only alert Message');__doPostBack('__Page', '');", True)


C#
this.Page.ClientScript.
RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString() , "alert('" + ex.Message + "');__doPostBack('__Page', 'EmptyPostback');", true);

__doPostBack('__Page', 'EmptyPostback'); is used to avoid alert message while click on browser back button.

When we register the client script with the alert, immediately follow the alert statement with one which will refresh the page. This ensures that the client script is removed from the page as soon as the OK is clicked, and if the user returns to the page the alert pop up does not reappear.


Register Javascript when using Update Panel

VB
ScriptManager.RegisterStartupScript(Me, [GetType](), "showalert", "alert('Only alert Message');__doPostBack('__Page', '');", True)
C#

ScriptManager.RegisterStartupScript(Page, Page.GetType(), Guid.NewGuid().ToString(),"alert('I am from the Server');__doPostBack('__Page', '');", true);

Error Handling in SQL Server


BEGIN TRY
      select 1/0
END TRY
BEGIN CATCH
    DECLARE @ErrorMessage NVARCHAR(4000);
    DECLARE @ErrorSeverity INT;
    DECLARE @ErrorState INT;

    SELECT
        @ErrorMessage = ERROR_MESSAGE(),
        @ErrorSeverity = ERROR_SEVERITY(),
        @ErrorState = ERROR_STATE();
    RAISERROR (@ErrorMessage, -- Message text.
               @ErrorSeverity, -- Severity.
               @ErrorState -- State.
               );
END CATCH;

Wednesday, 18 April 2012

Set max length for multiline textbox



Jquery Common Function:

setMaxLengh: function (id, len, msg) {

      if ($('#' + id).length == 0) return;

      if ($('#' + msg).length > 0) $('#' + msg).html(len + " Characters left");


      $('#' + id).keypress(function (e) {
          if ($(this).val().length >= len) {
              e.preventDefault();
          }
      });

      $('#' + id).keyup(function (e) {
          var total = parseInt($(this).val().length);

          if ($('#' + msg).length > 0) $("#" + msg).html('Characters entered <b>' + total + '</b> out of ' + len + '.');

          if (total >= len) $(this).val($(this).val().substring(0, len));
      });
  }

(or)

Javascript:

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>set Max Length</title>
    <script type="text/javascript">
        //To display the number of characters left
        function CharactersCount() {
            var CharLength = '<%=txtMsg.MaxLength %>';
            var txtMsg = document.getElementById('txtMsg');
            var lblCount = document.getElementById('lblCount');          
            if (txtMsg.value.length > CharLength) {
                txtMsg.value = txtMsg.value.substring(0, CharLength);
            }
            lblCount.innerHTML = CharLength - txtMsg.value.length;          
        }
    </script>
    <style type="text/css">
.lblstyle
{
color:Red;
font-weight:bold
font-size11px;
font-familyverdana;
}
</style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table>
            <tr>
             
                <td>
                    <span style="font-family: Verdana; font-size: 12px">Left:</span>
                    <asp:Label ID="lblCount" runat="server" Text="100" CssClass="lblstyle"></asp:Label>
                </td>
            </tr>
          
            <tr>
                <td colspan="2">
                    <asp:TextBox ID="txtMsg" onkeyup="CharactersCount();" runat="server"
                        Style="overflow: hidden;" Height="80px" TextMode="MultiLine" Width="300px" MaxLength="100" />
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>



disable resizing a multi line text box



<style type="text/css">
    textarea {resize:none;}
</style>

Or

<asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" style="resize:none;"></asp:TextBox>




Tuesday, 17 April 2012

asp:Menu rendering problems in IE8, Safari and Chrome

I was caught off-gaurd today when a user of one my applications reported that the asp:Menu was not rendering properly in her IE browser. I checked the version and it was IE8. I changed the application to compatibility view and the menu rendered just fine.
Since I cannot tell each and every user to view the app in compatibility view when in IE8, i started digging for solutions. It looked like a z-index problem to start with. The problem was that since the new IE8 is moving closer to standards, the z-index value was set to "auto" when not specified. I tried changing it something bigger than its container's z-index value woo-hoo...it worked.
I just added this line in the CSS class definition:

z-index : 100/* Setting z-index because of an IE8 bug */
Since it is a bug, there are some hotfixes available from MS here.
This problem prompted me to look for rendering in Chrome and Safari also.
The asp:Menu control looks horrible in Chrome. There are no popups, just plain static text. I stumbled upon this thread which discusses this problem. I did not use the method posted in that thread, instead, I used a solution posted by user Mark Perkins which to me looked like the simplest and cleanest solution. Here is what he posted:
Put this piece of code in your Master page code file:
// Adding this override so that the asp:Menu control renders properly in Safari and Chrome
    protected override void AddedControl(Control control, int index)
    {
        if (Request.ServerVariables["http_user_agent"].IndexOf("Safari"StringComparison.CurrentCultureIgnoreCase) != -1)
        {
            this.Page.ClientTarget = "uplevel";
        }
        base.AddedControl(control, index);
    }

Monday, 16 April 2012

SQL - CASE in a WHERE clause

Case statement in where clause

  1. SELECT T2.*, T1.*
  2.      FROM T1, T2
  3.    WHERE (CASE WHEN T2.COMPARE_TYPE = 'A' AND
  4.                      T1.SOME_TYPE LIKE 'NOTHING%'
  5.                 THEN 1
  6.                 WHEN T2.COMPARE_TYPE != 'A' AND
  7.                      T1.SOME_TYPE NOT LIKE 'NOTHING%' 
  8.                   THEN 1
  9.                ELSE 0
  10.           END) = 1

    Result

    C        SEQ SOME_TYPE
    - ---------- -----------
    A          1 NOTHING 1
    A          2 NOTHING 2
    B          3 SOMETHING 1
    B          4 SOMETHING 2
    B          5 SOMETHING 3
    B          6 SOMETHING 4

Monday, 26 March 2012

To Reference ASP.Net Master page content, content pages


To Access Content Page TextBox Value in MasterPage:

TextBox txtB = (TextBox)ContentPlaceHolder1.FindControl("txtContentPg");
txtMaster.Text = "Content Page TextBox Value: " + txtB.Text;

To Access Master Page Label Value in ContentPage:

Label l1 = (Label)Master.FindControl("lblMaster");
lblContentPg.Text = "Master Page Label = "+l1.Text;