نحوه ایجاد مدال توسط Ajax در Asp.net

سه شنبه 28 بهمن 1393

در این مقاله میخواهیم یک مدال را با استفاده از Ajax در Asp.net پیاده سازی کنیم که اطلاعات را از کاربر بگیرد در پایگاه داده ذخیره کند و به گرید اضافه کند.

نحوه ایجاد مدال توسط Ajax در Asp.net

روال کار به این شکل خواهد بود که ابتدا یک کنترل ModalPopUP ایجاد کنیم سپس اعتبار سنجی فیلد های ورودی انجام شود ، ذخیره اطلاعت در پایگاه داده و درآخر نمایش اطلاعات ذخیره شده در یک گریدویو.

ابتدا یک جدول در پایگاه داده با فیلد های زیر میسازیم:


    create table tbl_ModalPopUp_Sample  
    (  
       ID int identity primary key,  
       UserName varchar(50),  
       Mobile_No bigint  
    )  

حال باید صفحه خود راکه میخواهیم نمایش دهیم آماده کنیم از یک کنترل UserControl از جعبه ابزار خود به صفحه اضافه کنید و یک Modal Popup  به فرم خود اضافه کرده و خصوصیات زیر را برای آن تنظیم میکنیم :

CancelControlID="btnClose" 
TargetControlID="LinkButton1" 
BackgroundCssClass="modalBackground"
    DropShadow="True"  

    PopupControlID="ModalBox" (The ID of the Panel or DIV)  

پس Modal به شکل زیر تنظیم میشود:

<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server"   
    CancelControlID="btnClose" PopupControlID="ModalBox"   
    TargetControlID="LinkButton1" BackgroundCssClass="modalBackground"   
    DropShadow="True">  
    </asp:ModalPopupExtender>

حال برای مدال خود از کد های css برای زیبایی آن استفاده میکنیم:


    .modalBackground  
     {         
         background-color: #336699;  
         filter: alpha(opacity=80);  
         opacity: 0.8;  
     }   
      
     .modalBackground:hover    
     {  
         background-color : #CC3300;  
     }  

بعد از اضافه کردن مدال در بالای صفحه کد زیر خواهید دید:

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

صفحه خود را به شکل زیر تنظیم نمایید:

کد های css که برای این صفحه استفاده میشود در بالای صفحه خود داخل تگ استایل قرار میدهیم:

  <style type="text/css">  
         
        .Clear  
        {  
            clear:both;  
        }  
          
        .logButton  
        {  
          width: 100px;  
          height: 30px;  
          background-color: #FB5F67;  
          font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: bold; font-style: normal;   
            font-variant: normal; text-transform: capitalize; color: #FFFFFF;       
        }  
        a:hover {color:#FF00FF;}  
        a:link    {color:blue;}  
        a:visited {color:green;}  
        a:active  {color:yellow;}  
          
        input[type="submit"]:hover {  
    background:#0000FF;  
}  
  
        .LoginBox  
        {  
            margin: 10px;  
            height: 270px;  
            background-color: #FB5F67;  
        }  
        .Heading  
        {  
            margin: 10px;  
            height: 15px;  
            background-color: #FFFFFF;  
            font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; font-style: normal;   
            font-variant: normal; text-transform: capitalize; color: #6C6B6B;   
            text-align: center;  
            padding: 4px;  
        }  
  
        .InnerLogin  
        {  
            margin: 10px;  
            margin-right: 5px;  
            width: 320px;  
            height: 250px;  
            float: left;  
            background-color: White;  
        }  
        .NewUserBox  
        {  
            margin: 10px;  
            margin-left: 5px;          
            width: 330px;  
            height: 250px;  
            float: left;  
            background-color: White;  
        }  
  
        .ClickButton  
        {  
          width: 100px;  
          height: 30px;  
          background-color: #339933;  
          font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: bold; font-style: normal;   
          font-variant: normal; text-transform: capitalize; color: #FFFFFF;       
        }  
                 
         .ContentInside  
         {  
             margin: 10px;  
         }  
          
     .TextBoxSize  
         {  
             width: 200px;  
         }  
  
     .SmallTextBox  
         {  
            width: 100px;    
         }  
           
         .DropDownSize  
         {  
           width: 255px;  
           height: 23px;    
         }  
     .ContentMiddle  
         {  
             margin: 0px auto;  
             height: auto;  
             width: 500px;  
         }  
          
         .LeftHeading  
         {  
             font-family: Arial, Helvetica, sans-serif;  
             font-size: 14px;  
             font-weight: bold;  
             font-style: normal;  
             font-variant: normal;  
             text-transform: capitalize;  
             color: #CC3300;  
             text-align: left;  
         }  
  
     .SubHeadingLeft  
         {  
             margin: 10px;  
             height: 15px;  
             padding: 4px;  
             background-color: #999999;  
             font-family: Arial, Helvetica, sans-serif;  
             font-size: 12px;  
             font-weight: bold;  
             font-style: normal;  
             font-variant: normal;  
             text-transform: capitalize;  
             color: #FFFFFF;  
             text-align: left;  
         }  
  
    .SmallButton  
        {  
          width: 70px;  
          height: 30px;  
          background-color: #666633;  
          font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: bold; font-style: normal;   
          font-variant: normal; text-transform: capitalize; color: #FFFFFF;       
        }  
    .modalBackground  
    {         
        background-color: #336699;  
        filter: alpha(opacity=80);  
        opacity: 0.8;  
    }         
  
      .modalBackground:hover    
      {  
          background-color : #CC3300;  
          }  
         .style1  
         {  
             width: 20px;  
         }  
         .style3  
         {  
             width: 4px;  
         }  
         .style4  
         {  
             width: 5px;  
             color: Red;  
         }  
          
          
         .style5  
         {  
             width: 525px;  
         }  
          
          
         .style6  
         {  
             height: 34px;  
         }  
         .style7  
         {  
             width: 525px;  
             height: 34px;  
         }  
         .style8  
         {  
             height: 23px;  
         }  
          
          
         .style9  
         {  
             width: 136px;  
         }  
         .style10  
         {  
             height: 34px;  
             width: 136px;  
         }  
         .style12  
         {  
             height: 34px;  
             width: 20px;  
         }  
         .style14  
         {  
             height: 34px;  
             width: 4px;  
         }  
         .style15  
         {  
             width: 120px;  
         }  
          
          
    </style>   

 یک div با کلاس ContetntInside ایجاد کنید ول یک  update Panel و Modal   خود را داخل آن اضافه کنید:

<div class="ContentInside">  
    <asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional">  
    <ContentTemplate>  
    <table style="width:100%;">  
        <tr>  
            <td class="style1">  
                 </td>  
            <td class="style9">  
                 </td>  
            <td class="style3">  
                 </td>  
            <td class="style5">  
                 </td>  
            <td>  
                 </td>  
        </tr>  
        <tr>  
            <td class="style12">  
                </td>  
            <td class="style10">  
                Insert New Data</td>  
            <td class="style14">  
                :</td>  
            <td class="style7">  
                <asp:LinkButton ID="LinkButton1" runat="server">Procede</asp:LinkButton>  
            </td>  
            <td class="style6">  
                </td>  
        </tr>  
        <tr>  
            <td class="style1">  
                 </td>  
            <td class="style9">  
                 </td>  
            <td class="style3">  
                 </td>  
            <td class="style5">  
                 </td>  
            <td>  
                 </td>  
        </tr>  
    </table>  
    <asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server"   
        CancelControlID="btnClose" PopupControlID="ModalBox"   
        TargetControlID="LinkButton1" BackgroundCssClass="modalBackground"   
        DropShadow="True">  
        </asp:ModalPopupExtender>  
    </ContentTemplate>  
   </asp:UpdatePanel>  
</div>   

سپس div دیگری با کلاس ContentInside  ایجاد و id آنرا به ModalBox تنظیم کنید داخل آن از یک updatePanel استفاده میکنیم که داخل این پنل یک جدول ایجاد میکنیم و داخل جدول از جعبه ابزار خود textbox داخل آن می اندازیم و برای textbox ها رvalidator تنظیم میکنیم:

<div class="ContentInside" id="ModalBox" runat="server"    
      
    style="background-color: #0099CC; color: #FFFFFF; font-weight: bold; font-family: Cambria; font-style: normal; text-transform: capitalize">  
<asp:UpdatePanel ID="UpdatePanel1" runat="server">  
  <ContentTemplate>   
        <table style="width:100%;">  
            <tr>  
                <td class="style1">  
                     </td>  
                <td class="style15">  
                     </td>  
                <td class="style3">  
                     </td>  
                <td class="style4">  
                     </td>  
                <td>  
                     </td>  
                <td>  
                     </td>  
            </tr>  
            <tr>  
                <td class="style1">  
                     </td>  
                <td class="style15">  
                     </td>  
                <td class="style3">  
                     </td>  
                <td class="style4">  
                     </td>  
                <td>  
                     </td>  
                <td>  
                     </td>  
            </tr>  
            <tr>  
                <td class="style1">  
                     </td>  
                <td class="style15">  
                    User name</td>  
                <td class="style3">  
                    :</td>  
                <td class="style4">  
                    *</td>  
                <td>  
                    <asp:TextBox ID="txtUserName" runat="server" CssClass="TextBoxSize"></asp:TextBox>  
                </td>  
                <td>  
                     </td>  
            </tr>  
            <tr>  
                <td class="style1">  
                     </td>  
                <td class="style15">  
                     </td>  
                <td class="style3">  
                     </td>  
                <td class="style4">  
                     </td>  
                <td>  
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"   
                        ControlToValidate="txtUserName" ErrorMessage="* Enter UserName" ForeColor="Red"   
                        ValidationGroup="abc"></asp:RequiredFieldValidator>  
                </td>  
                <td>  
                     </td>  
            </tr>  
            <tr>  
                <td class="style1">  
                     </td>  
                <td class="style15">  
                    Mobile Number</td>  
                <td class="style3">  
                    :</td>  
                <td class="style4">  
                    *</td>  
                <td>  
                    <asp:TextBox ID="txtMobile" runat="server" CssClass="TextBoxSize"></asp:TextBox>  
                </td>  
                <td>  
                     </td>  
            </tr>  
            <tr>  
                <td class="style1">  
                     </td>  
                <td class="style15">  
                     </td>  
                <td class="style3">  
                     </td>  
                <td class="style4">  
                     </td>  
                <td>  
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"   
                        ControlToValidate="txtMobile" ErrorMessage="* Enter Mobile No" ForeColor="Red"   
                        ValidationGroup="abc"></asp:RequiredFieldValidator>  
                    <asp:RangeValidator ID="RangeValidator1" runat="server"   
                        ControlToValidate="txtMobile" ErrorMessage="* Minimum 10 Digit Mobile Number"   
                        ForeColor="Red" MaximumValue="9999999999" MinimumValue="1000000000"   
                        Type="Double" ValidationGroup="abc"></asp:RangeValidator>  
                </td>  
                <td>  
                     </td>  
            </tr>  
            <tr>  
                <td class="style1">  
                     </td>  
                <td class="style15">  
                     </td>  
                <td class="style3">  
                     </td>  
                <td class="style4">  
                     </td>  
                <td>  
                    <asp:Button ID="btnSave" runat="server" CssClass="ClickButton" Text="Save"   
                        onclick="btnSave_Click" ValidationGroup="abc" />  
                    <asp:Button ID="btnReset" runat="server" CssClass="ClickButton"   
                        onclick="btnReset_Click" Text="Reset" />  
                    <asp:Button ID="btnClose" runat="server" CssClass="ClickButton" Text="Close" />  
                </td>  
                <td>  
                     </td>  
            </tr>  
            <tr>  
                <td class="style1">  
                     </td>  
                <td class="style15">  
                     </td>  
                <td class="style3">  
                     </td>  
                <td class="style4">  
                     </td>  
                <td>  
                    <asp:Label ID="lblMessage1" runat="server" ForeColor="Red"></asp:Label>  
                </td>  
                <td>  
                     </td>  
            </tr>  
            <tr>  
                <td class="style1">  
                     </td>  
                <td class="style15">  
                     </td>  
                <td class="style3">  
                     </td>  
                <td class="style4">  
                     </td>  
                <td>  
                     </td>  
                <td>  
                     </td>  
            </tr>  
        </table>  
    </ContentTemplate>  
    </asp:UpdatePanel>    
</div>   

و در آخر div دیگری با کلاس ContentInside  ایجاد میکنیم و داخل آن یک update Panel اضافه کرده و داخل پنل خود یک جدول می اندازیم و داخل جدول یک کنترل گرید ویو اضافه میکنیم:

<div class="ContentInside">  
    <asp:UpdatePanel ID="UpdatePanel2" runat="server">  
    <ContentTemplate>  
    <table style="width:100%;">  
        <tr>  
            <td class="style8">  
            </td>  
            <td class="style8">  
                <asp:GridView ID="GridView1" runat="server" BackColor="White"   
                    BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" CellPadding="4"   
                    AllowPaging="True" onpageindexchanging="GridView1_PageIndexChanging"   
                    PageSize="5">  
                    <FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />  
                    <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />  
                    <PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />  
                    <RowStyle BackColor="White" ForeColor="#330099" />  
                    <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />  
                    <SortedAscendingCellStyle BackColor="#FEFCEB" />  
                    <SortedAscendingHeaderStyle BackColor="#AF0101" />  
                    <SortedDescendingCellStyle BackColor="#F6F0C0" />  
                    <SortedDescendingHeaderStyle BackColor="#7E0000" />  
                </asp:GridView>  
            </td>  
            <td class="style8">  
            </td>  
        </tr>  
        <tr>  
            <td>  
                 </td>  
            <td>  
                <asp:Label ID="lblMessage2" runat="server" ForeColor="Red"></asp:Label>  
            </td>  
            <td>  
                 </td>  
        </tr>  
        </table>  
    </ContentTemplate>  
   </asp:UpdatePanel>  
</div>  

پس صفحه شما به شکل زیر خواهد شد:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Modal_Pooup_Control.ascx.cs" Inherits="Ajax_User_Controls_Modal_Pooup_Control" %>  
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>  
     <style type="text/css">  
         
        .Clear  
        {  
            clear:both;  
        }  
          
        .logButton  
        {  
          width: 100px;  
          height: 30px;  
          background-color: #FB5F67;  
          font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: bold; font-style: normal;   
            font-variant: normal; text-transform: capitalize; color: #FFFFFF;       
        }  
        a:hover {color:#FF00FF;}  
        a:link    {color:blue;}  
        a:visited {color:green;}  
        a:active  {color:yellow;}  
          
        input[type="submit"]:hover {  
    background:#0000FF;  
}  
  
        .LoginBox  
        {  
            margin: 10px;  
            height: 270px;  
            background-color: #FB5F67;  
        }  
        .Heading  
        {  
            margin: 10px;  
            height: 15px;  
            background-color: #FFFFFF;  
            font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; font-style: normal;   
            font-variant: normal; text-transform: capitalize; color: #6C6B6B;   
            text-align: center;  
            padding: 4px;  
        }  
  
        .InnerLogin  
        {  
            margin: 10px;  
            margin-right: 5px;  
            width: 320px;  
            height: 250px;  
            float: left;  
            background-color: White;  
        }  
        .NewUserBox  
        {  
            margin: 10px;  
            margin-left: 5px;          
            width: 330px;  
            height: 250px;  
            float: left;  
            background-color: White;  
        }  
  
        .ClickButton  
        {  
          width: 100px;  
          height: 30px;  
          background-color: #339933;  
          font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: bold; font-style: normal;   
          font-variant: normal; text-transform: capitalize; color: #FFFFFF;       
        }  
                 
         .ContentInside  
         {  
             margin: 10px;  
         }  
          
     .TextBoxSize  
         {  
             width: 200px;  
         }  
  
     .SmallTextBox  
         {  
            width: 100px;    
         }  
           
         .DropDownSize  
         {  
           width: 255px;  
           height: 23px;    
         }  
     .ContentMiddle  
         {  
             margin: 0px auto;  
             height: auto;  
             width: 500px;  
         }  
          
         .LeftHeading  
         {  
             font-family: Arial, Helvetica, sans-serif;  
             font-size: 14px;  
             font-weight: bold;  
             font-style: normal;  
             font-variant: normal;  
             text-transform: capitalize;  
             color: #CC3300;  
             text-align: left;  
         }  
  
     .SubHeadingLeft  
         {  
             margin: 10px;  
             height: 15px;  
             padding: 4px;  
             background-color: #999999;  
             font-family: Arial, Helvetica, sans-serif;  
             font-size: 12px;  
             font-weight: bold;  
             font-style: normal;  
             font-variant: normal;  
             text-transform: capitalize;  
             color: #FFFFFF;  
             text-align: left;  
         }  
  
    .SmallButton  
        {  
          width: 70px;  
          height: 30px;  
          background-color: #666633;  
          font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: bold; font-style: normal;   
          font-variant: normal; text-transform: capitalize; color: #FFFFFF;       
        }  
    .modalBackground  
    {         
        background-color: #336699;  
        filter: alpha(opacity=80);  
        opacity: 0.8;  
    }         
  
      .modalBackground:hover    
      {  
          background-color : #CC3300;  
          }  
         .style1  
         {  
             width: 20px;  
         }  
         .style3  
         {  
             width: 4px;  
         }  
         .style4  
         {  
             width: 5px;  
             color: Red;  
         }  
          
          
         .style5  
         {  
             width: 525px;  
         }  
          
          
         .style6  
         {  
             height: 34px;  
         }  
         .style7  
         {  
             width: 525px;  
             height: 34px;  
         }  
         .style8  
         {  
             height: 23px;  
         }  
          
          
         .style9  
         {  
             width: 136px;  
         }  
         .style10  
         {  
             height: 34px;  
             width: 136px;  
         }  
         .style12  
         {  
             height: 34px;  
             width: 20px;  
         }  
         .style14  
         {  
             height: 34px;  
             width: 4px;  
         }  
         .style15  
         {  
             width: 120px;  
         }  
          
          
    </style>  
<div class="Heading">  
    ModalPouUp Control</div>  
<div class="ContentInside">  
    <asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">  
    </asp:ScriptManagerProxy>  
</div>  
<div class="ContentInside">  
    <asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional">  
    <ContentTemplate>  
    <table style="width:100%;">  
        <tr>  
            <td class="style1">  
                 </td>  
            <td class="style9">  
                 </td>  
            <td class="style3">  
                 </td>  
            <td class="style5">  
                 </td>  
            <td>  
                 </td>  
        </tr>  
        <tr>  
            <td class="style12">  
                </td>  
            <td class="style10">  
                Insert New Data</td>  
            <td class="style14">  
                :</td>  
            <td class="style7">  
                <asp:LinkButton ID="LinkButton1" runat="server">Procede</asp:LinkButton>  
            </td>  
            <td class="style6">  
                </td>  
        </tr>  
        <tr>  
            <td class="style1">  
                 </td>  
            <td class="style9">  
                 </td>  
            <td class="style3">  
                 </td>  
            <td class="style5">  
                 </td>  
            <td>  
                 </td>  
        </tr>  
    </table>  
    <asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server"   
        CancelControlID="btnClose" PopupControlID="ModalBox"   
        TargetControlID="LinkButton1" BackgroundCssClass="modalBackground"   
        DropShadow="True">  
        </asp:ModalPopupExtender>  
    </ContentTemplate>  
   </asp:UpdatePanel>  
</div>  
<div class="ContentInside" id="ModalBox" runat="server"    
      
    style="background-color: #0099CC; color: #FFFFFF; font-weight: bold; font-family: Cambria; font-style: normal; text-transform: capitalize">  
<asp:UpdatePanel ID="UpdatePanel1" runat="server">  
  <ContentTemplate>   
        <table style="width:100%;">  
            <tr>  
                <td class="style1">  
                     </td>  
                <td class="style15">  
                     </td>  
                <td class="style3">  
                     </td>  
                <td class="style4">  
                     </td>  
                <td>  
                     </td>  
                <td>  
                     </td>  
            </tr>  
            <tr>  
                <td class="style1">  
                     </td>  
                <td class="style15">  
                     </td>  
                <td class="style3">  
                     </td>  
                <td class="style4">  
                     </td>  
                <td>  
                     </td>  
                <td>  
                     </td>  
            </tr>  
            <tr>  
                <td class="style1">  
                     </td>  
                <td class="style15">  
                    User name</td>  
                <td class="style3">  
                    :</td>  
                <td class="style4">  
                    *</td>  
                <td>  
                    <asp:TextBox ID="txtUserName" runat="server" CssClass="TextBoxSize"></asp:TextBox>  
                </td>  
                <td>  
                     </td>  
            </tr>  
            <tr>  
                <td class="style1">  
                     </td>  
                <td class="style15">  
                     </td>  
                <td class="style3">  
                     </td>  
                <td class="style4">  
                     </td>  
                <td>  
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"   
                        ControlToValidate="txtUserName" ErrorMessage="* Enter UserName" ForeColor="Red"   
                        ValidationGroup="abc"></asp:RequiredFieldValidator>  
                </td>  
                <td>  
                     </td>  
            </tr>  
            <tr>  
                <td class="style1">  
                     </td>  
                <td class="style15">  
                    Mobile Number</td>  
                <td class="style3">  
                    :</td>  
                <td class="style4">  
                    *</td>  
                <td>  
                    <asp:TextBox ID="txtMobile" runat="server" CssClass="TextBoxSize"></asp:TextBox>  
                </td>  
                <td>  
                     </td>  
            </tr>  
            <tr>  
                <td class="style1">  
                     </td>  
                <td class="style15">  
                     </td>  
                <td class="style3">  
                     </td>  
                <td class="style4">  
                     </td>  
                <td>  
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"   
                        ControlToValidate="txtMobile" ErrorMessage="* Enter Mobile No" ForeColor="Red"   
                        ValidationGroup="abc"></asp:RequiredFieldValidator>  
                    <asp:RangeValidator ID="RangeValidator1" runat="server"   
                        ControlToValidate="txtMobile" ErrorMessage="* Minimum 10 Digit Mobile Number"   
                        ForeColor="Red" MaximumValue="9999999999" MinimumValue="1000000000"   
                        Type="Double" ValidationGroup="abc"></asp:RangeValidator>  
                </td>  
                <td>  
                     </td>  
            </tr>  
            <tr>  
                <td class="style1">  
                     </td>  
                <td class="style15">  
                     </td>  
                <td class="style3">  
                     </td>  
                <td class="style4">  
                     </td>  
                <td>  
                    <asp:Button ID="btnSave" runat="server" CssClass="ClickButton" Text="Save"   
                        onclick="btnSave_Click" ValidationGroup="abc" />  
                    <asp:Button ID="btnReset" runat="server" CssClass="ClickButton"   
                        onclick="btnReset_Click" Text="Reset" />  
                    <asp:Button ID="btnClose" runat="server" CssClass="ClickButton" Text="Close" />  
                </td>  
                <td>  
                     </td>  
            </tr>  
            <tr>  
                <td class="style1">  
                     </td>  
                <td class="style15">  
                     </td>  
                <td class="style3">  
                     </td>  
                <td class="style4">  
                     </td>  
                <td>  
                    <asp:Label ID="lblMessage1" runat="server" ForeColor="Red"></asp:Label>  
                </td>  
                <td>  
                     </td>  
            </tr>  
            <tr>  
                <td class="style1">  
                     </td>  
                <td class="style15">  
                     </td>  
                <td class="style3">  
                     </td>  
                <td class="style4">  
                     </td>  
                <td>  
                     </td>  
                <td>  
                     </td>  
            </tr>  
        </table>  
    </ContentTemplate>  
    </asp:UpdatePanel>    
</div>  
<div class="ContentInside">  
    <asp:UpdatePanel ID="UpdatePanel2" runat="server">  
    <ContentTemplate>  
    <table style="width:100%;">  
        <tr>  
            <td class="style8">  
            </td>  
            <td class="style8">  
                <asp:GridView ID="GridView1" runat="server" BackColor="White"   
                    BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" CellPadding="4"   
                    AllowPaging="True" onpageindexchanging="GridView1_PageIndexChanging"   
                    PageSize="5">  
                    <FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />  
                    <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />  
                    <PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />  
                    <RowStyle BackColor="White" ForeColor="#330099" />  
                    <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />  
                    <SortedAscendingCellStyle BackColor="#FEFCEB" />  
                    <SortedAscendingHeaderStyle BackColor="#AF0101" />  
                    <SortedDescendingCellStyle BackColor="#F6F0C0" />  
                    <SortedDescendingHeaderStyle BackColor="#7E0000" />  
                </asp:GridView>  
            </td>  
            <td class="style8">  
            </td>  
        </tr>  
        <tr>  
            <td>  
                 </td>  
            <td>  
                <asp:Label ID="lblMessage2" runat="server" ForeColor="Red"></asp:Label>  
            </td>  
            <td>  
                 </td>  
        </tr>  
        </table>  
    </ContentTemplate>  
   </asp:UpdatePanel>  
</div>

حال در صفحه aspx.cs  در رویداد page_load یک تابع به نام loadGridData  برای واکشی اظلاعات از پایگاه داده و پر کردن گرید فراخوانی میکنیم:

    protected void Page_Load(object sender, EventArgs e)  
    {  
        LoadGridData();  
    }   

در بدنه تابع از try - cash استفاده کرده ایم تا در حین استفاده اگر مشکلی پیش آمد برنامه متوقف نشود بدنه تابع را به شکل زیر بنویسید :

 private void LoadGridData()  
    {  
        try  
        {  
            using (DataClassesDataContext DbContext = new DataClassesDataContext())  
            {  
                var Data = DbContext.tbl_ModalPopUp_Samples;  
                //  
                GridView1.DataSource = Data;  
                GridView1.DataBind();  
            }  
        }  
        catch (Exception Exc)  
        {  
            lblMessage2.Visible = true;  
            lblMessage2.ForeColor = Color.Red;  
            lblMessage2.Text = " Application Error :  " + Exc.Message;  
        }  
  
        finally  
        {  
            //  
        }  
    }   

حال در رویداد کلیک دکمه Save تابع دیگری به نام DataSave برای ذخیره اطلاعات فرخوانی میکنیم:

 protected void btnSave_Click(object sender, EventArgs e)  
    {  
        DataSave();  
    }   

در این تابع هم به دلیل ارتباط با پاگاه داده و عملیات درج از try cash استفاده میکنیم و بدنه تابع را به شکل زیر ذخیره میکنیم:

 private void DataSave()  
    {  
        try  
        {  
            using (DataClassesDataContext DbContext = new DataClassesDataContext())  
            {  
                tbl_ModalPopUp_Sample tbl = new tbl_ModalPopUp_Sample();  
                tbl.UserName = txtUserName.Text;  
                tbl.Mobile_No = Convert.ToInt64(txtMobile.Text);  
                //  
                DbContext.tbl_ModalPopUp_Samples.InsertOnSubmit(tbl);  
                DbContext.SubmitChanges();  
            }  
            //  
            lblMessage1.ForeColor = Color.Blue;  
            lblMessage1.Text = "Data Saverd Successfully.";  
            //  
            ResetAll();  
            LoadGridData();  
        }  
        catch (Exception Exc)  
        {  
            lblMessage1.Visible = true;  
            lblMessage1.ForeColor = Color.Red;  
            lblMessage1.Text = " Application Error :  " + Exc.Message;  
        }  
  
        finally  
        {  
            //  
        }  
    }   

در رویداد کلیک دکمه Reset  یک تابع به نام ResetAll فراخوانی میکنیم که کار این تابع خالی کردن متن داخل textboxهای روی صفحه می باشد:

 protected void btnReset_Click(object sender, EventArgs e)  
    {  
        ResetAll();  
        lblMessage1.Text = "";  
        lblMessage2.Text = "";  
    }   

بدنه تابع را به شکل زیر پیاده سازی میکنیم:

 private void ResetAll()  
    {  
        txtUserName.Text = "";  
        txtMobile.Text = "";  
    }   

و در آخر در رویداد  PageIndexChanging گرید ویو مجددا تابع LoadGridData فراخوانی میکنیم:

  protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)  
    {  
        GridView1.PageIndex = e.NewPageIndex;  
        LoadGridData();  
    }   

حالا میتونید برنامه خود را ایجاد کنید :

با کلیک روی Procede مدال شما ظاهر خواهد شد:

زمانی که روی دکمه save کلیک شود داده وارد شده ذخیره شده و به گرید اضافه خواهد شد:

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید