توضیحات و دانلود

بارگیری مقادیر چندگانه به عنوان جفت کلیدی در ASP.Net AJAX AutoCompleteExtender
0 0
بارگیری مقادیر چندگانه به عنوان جفت کلیدی در ASP.Net AJAX AutoCompleteExtender

 با سلام در حال حاضر مقاله ای در مورد استفاده از ASP.NET AJAX Toolkit AutoCompleteExtender  بدون استفاده از سرویسهای وب نوشته ایم  ، این مقاله گسترش مقاله قبلی است.

استفاده از AutoCompleteExtender در جعبه ابزار AJAX بدون استفاده از Web Services در ASP.Net
در مقاله فوق، AutoCompleteExtender فقط بخش متن و نه شناسه از پایگاه داده را دریافت می کند. اما مواردی وجود دارد که ما برای هر دو مقدار متن و مقدار ID از چندین ستون در جدول پایگاه داده نیاز داریم. بنابراین برای چنین مواردی ما باید از کلاس AutoCompleteItem ازکنترل جعبه ابزار AJAX AutoCompleteExtender  استفاده کنیم که چیزی جز ارزش Key Value Pairs یا Text Value Pairs نیست.

کد HTML

<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
</asp:ScriptManager>
<asp:TextBox ID="txtCustomer" runat="server">
</asp:TextBox>
<cc1:AutoCompleteExtender ServiceMethod="SearchCustomers" MinimumPrefixLength="2"
CompletionInterval="100" EnableCaching="false" CompletionSetCount="10" TargetControlID="txtCustomer" ID="AutoCompleteExtender1" runat="server" FirstRowSelected="false" OnClientItemSelected = "ClientItemSelected">
</cc1:AutoCompleteExtender>
<asp:HiddenField ID="hfCustomerId" runat="server" />
<asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click" />
</form>

کد HTML حاوی ASP.Net TextBox، AJAX AutoCompleteExtender، HiddenField است که ID رکورد و یک دکمه را برای توضیح چگونگی آوردن شناسه و  ارزش server side است .
 
جمع آوری AutoCompleteExtender
کد زیر برای پر کردن کنترل جعبه ابزار AJAXAutoCompleteExtender است.  از پایگاه داده Microsoft NorthWind استفاده می کنیم.
C #

[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public static List<string> SearchCustomers(string prefixText, int count)
{
    using (SqlConnection conn = new SqlConnection())
    {
        conn.ConnectionString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
        using (SqlCommand cmd = new SqlCommand())
        {
            cmd.CommandText = "select CustomerId, ContactName from Customers where " +
            "ContactName like @SearchText + '%'";
            cmd.Parameters.AddWithValue("@SearchText", prefixText);
            cmd.Connection = conn;
            conn.Open();
            List<string> customers = new List<string>();
            using (SqlDataReader sdr = cmd.ExecuteReader())
            {
                while (sdr.Read())
                {
                    string item = AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(sdr["ContactName"].ToString(), sdr["CustomerId"].ToString());
                    customers.Add(item);
                }
            }
            conn.Close();
            return customers;
        }
    }
}

VB.Net

<System.Web.Script.Services.ScriptMethod(), _
System.Web.Services.WebMethod()> _
Public Shared Function SearchCustomers(ByVal prefixText As String, ByVal count As Integer) As List(Of String)
    Dim conn As SqlConnection = New SqlConnection
    conn.ConnectionString = ConfigurationManager.ConnectionStrings("constr").ConnectionString
    Dim cmd As SqlCommand = New SqlCommand
    cmd.CommandText = "select CustomerId, ContactName from Customers where" & _
       " ContactName like @SearchText + '%'"
    cmd.Parameters.AddWithValue("@SearchText", prefixText)
    cmd.Connection = conn
    conn.Open()
    Dim customers As List(Of String) = New List(Of String)
    Dim sdr As SqlDataReader = cmd.ExecuteReader
    While sdr.Read
        Dim item As String = AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(sdr("ContactName").ToString, sdr("CustomerId").ToString)
        customers.Add(item)
    End While
    conn.Close()
    Return customers
End Function


شما متوجه خواهید شد که این کد همان مقاله قبلی است و تنها تفاوت آن این است که چندین ستون را دریافت می کنیم و سپس یک AutoCompleteItem را ایجاد و آن را به لیست رشته اضافه می کنیم.
 
دریافت و ذخیره شناسه (بخش ارزش) Client side
در کد HTML شما رویداد client side در OnClientItemSelected را به AutoCompleteExtender اضافه میکنیم که وقتی کاربر یک مورد را از لیست AutoComplete انتخاب می کند، فعال می شود. در این مورد ما قسمت ID را از server side ارسال می کنیم را برمیداریم و آن را در کنترل HiddenField ذخیره میکنیم همانطور که در زیر نشان داده شده است :

<script type = "text/javascript">
    function ClientItemSelected(sender, e) {
        $get("<%=hfCustomerId.ClientID %>").value = e.get_value();
    }
</script>

 
دریافت شناسه انتخاب شده و متن server side
در حال حاضر درکلیک دکمه Button انتخاب متن و شناسه مشتری به روش زیر :
C #

protected void btnSubmit_Click(object sender, EventArgs e)
{
    string customerId = Request.Form[hfCustomerId.UniqueID];
    string customerName = Request.Form[txtCustomer.UniqueID];
}

VB.Net

Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim customerId As String = Request.Form(hfCustomerId.UniqueID)
    Dim customerName As String = Request.Form(txtCustomer.UniqueID)
End Sub

 


دانلود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

ارسال نظر
ارسال پیام به :