افزودن اطلاعات به صورت داینامیک توسط jQuery در ASP.Net

دوشنبه 15 تیر 1394

دراین مقاله نحوه افزودن اطلاعات به صورت داینامیک توسط jQuery در ASP.Net را یاد میگیریم.

افزودن اطلاعات به صورت داینامیک توسط jQuery در ASP.Net

در این مقاله نحوه افزودن اطلاعات به grid که از پایگاه داده براساس id (شناسه) یافت میشود. برای رسیدن به این هدف ما باید از jQuery برای سمت کاربر و ASP.Net با SQL Server به عنوان سمت سرور استفاده کنیم.

استفاده از jQuery :

در ابتدا در کدزیر فایل jQuery که در تگ </head><head> نشان داده شده است که برای فایل جاوااسکریپت jQuery می توانید از این لینک دانلود کنید.

<head runat="server">
    <title></title>
    <script src="Scripts/jquery-2.1.4.js"></script>
</head> - See more at: http://www.dotnetfunda.com/articles/show/3122/dynamically-append-data-to-the-grid-in-aspnet-with-jquery#sthash.QXgKWKdH.dpuf

فرم با Grid :

بنابراین ایجاد یک فرم با Grid می تواند رکورد را براساس مقدار شناسه و لیست داده ها پیدا کند. در کد زیر ما یک Textbox و یک button داریم. با کلیک بر روی دکمه button، تابع جاوا اسکریپت ()GetData را فراخوانی می کنیم. ما یک جدول html داریم با header که درآن اطلاعات در تگ </th><th> شناخته می شود. اطلاعات به صورت داینامیک (پویا) در تگ <tbody> که id=result است اضافه می شود.

<form id="form1" runat="server">
    <p>
        Enter ID: <input type="number" id="id" required /> 
        <input type="button" onclick="GetData()" value="Get" />
    </p>
    <div>
        <table>
            <tr>
                <th>First name</th><th>Last name</th><th>Age</th>
            </tr>
            <tbody id="result">

            </tbody>
        </table>
    </div>
    <script>
        function GetData() {
            var thisId = $("#id").val();
            $.get("GetData.aspx", { id: thisId }, function (data) {
                $("#result").append(data);
            });
        }
    </script>
    </form> - See more at: http://www.dotnetfunda.com/articles/show/3122/dynamically-append-data-to-the-grid-in-aspnet-with-jquery#sthash.QXgKWKdH.dpuf

وقتی که کاربر مقدار شناسه (Auto id) خود را در Textbox وارد می کند و دکمه را کلیک می کند. تابع ()GetData در کد <script> اجرا می شود. در این تابع، درخواست را به صفحه "GetData.aspx" ارسال می کند و "id" را به عنوان پارامتر به بدنه body متصل می کند. هنگامی که فرم پاسخ سرور دریافت شد، داده هایی که id آن ها result است به عنصر اضافه می شود.

بازیابی اطلاعات از پایگاه داده:

در حال حاضر یک صفحه GetData.aspx ایجاد میشود و تمام کدها در قسمت صفحه aspx. پاک میشود. در صفحه GetData.aspx.cs کد زیر را اضافه کنید:

اضافه کردن فضای نام :

using System.Text;
using System.Data;
using System.Data.SqlClient;
- See more at: http://www.dotnetfunda.com/articles/show/3122/dynamically-append-data-to-the-grid-in-aspnet-with-jquery#sthash.QXgKWKdH.dpuf

به عنوان مثال، درخواست برای این صفحه با تابع jQuery.get می باشد. بنابراین مقدار id که از بانک اطلاعاتی  توسط تابع get.$ فراخوانی شده از طریقRequest.QueryString بازخوانی و در صفحه نمایش می دهد. در نتیجه در متد Page_Load، ما مقدار و فراخوانی متد()SendData با مقدار id که به این صفحه ارسال شده است را بررسی می کنیم.

protected void Page_Load(object sender, EventArgs e)
    {
        if (!string.IsNullOrEmpty(Request.QueryString["id"]))
        {
            SendData(int.Parse(Request.QueryString["id"]));
        }
    }

    private void SendData(int id)
    {
        string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
        DataTable table = new DataTable();
        using (SqlConnection conn = new SqlConnection(connStr))
        {
            string sql = "SELECT * FROM PersonalDetails WHERE AutoID = @autoId";
            using (SqlCommand cmd = new SqlCommand(sql, conn))
            {
                cmd.Parameters.AddWithValue("@autoId", id);
                using (SqlDataAdapter ad = new SqlDataAdapter(cmd))
                {
                    ad.Fill(table);
                }
            }            
        }
        StringBuilder strB = new StringBuilder();
        foreach(DataRow row in table.Rows)
        {
            strB.Append("<tr><td>" + row["FirstName"] + "</td><td>" + row["LastName"] + "</td><td>" + row["Age"] + "</td></tr>");
        }
        
        Response.Write(strB.ToString());
    } - See more at: http://www.dotnetfunda.com/articles/show/3122/dynamically-append-data-to-the-grid-in-aspnet-with-jquery#sthash.QXgKWKdH.dpuf

در تابع ()SendData، ما از ADO.Net برای بازیابی اطلاعات از بانک اطلاعاتی براساس id و به صورت یک رشته (سطر جدول html) توسط StringBuilder که  در واقع همان متد Response.Write است ,  برمی گرداند.در آخر اطلاعات بازخوانی شده به جدول متصل میشود

فایل های ضمیمه

نرگس محمدی

نویسنده 36 مقاله در برنامه نویسان
  • Jquery
  • 2k بازدید
  • 1 تشکر

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

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