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

چاپ مواردی که با استفاده از کادر انتخاب در کنترل DataList انتخاب می شوند با Asp.net
0 0
چاپ مواردی که با استفاده از کادر انتخاب در کنترل DataList انتخاب می شوند با Asp.net

با سلام  در این مقاله توضیح خواهیم داد که چگونه می توانیم فقط موارد DataList را که با استفاده از CheckBox انتخاب می کنند، چاپ کنیم.
بانک اطلاعاتی
برای این آموزش از پایگاه داده NorthWind استفاده میکنیم . شما می توانید از لینک زیردانلود کنید.
دانلود Northwind پایگاه داده
کد HTML
در زیر کنترل DataList که اطلاعات ارتباط از جدول مشتریان پایگاه داده Northwind و یک دکمه کنترل که آیتم های انتخاب شده DataList را چاپ میکند را نشان می دهد .

<form id="form1" runat="server">
<asp:DataList ID="dlContacts" runat="server" RepeatLayout="Table" RepeatColumns="3"
    CellPadding="2" CellSpacing="2">
    <ItemTemplate>
        <table cellpadding="2" cellspacing="0" border = "1" style="width: 200px; height: 100px; border: dashed 2px #04AFEF;background-color: #B0E2F5">
            <tr>
                <td><asp:CheckBox ID="CheckBox1" runat="server" />
                <b><u><%# Eval("ContactName") %></u></b></td>
            </tr>
            <tr>
                <td>
                    <b>City: </b><%# Eval("City") %><br />
                    <b>Postal Code: </b><%# Eval("PostalCode") %><br />
                    <b>Country: </b><%# Eval("Country")%><br />
                    <b>Phone: </b><%# Eval("Phone")%><br />
                    <b>Fax: </b><%# Eval("Fax")%><br />
                </td>
            </tr>
        </table>
    </ItemTemplate>
</asp:DataList>
<br />
<asp:Button ID="btnPrint" runat="server" Text="Print" OnClick = "Print" />
</form>

فضاهای نام
شما باید فضای نامهای زیر را وارد کنید
C #

using System.IO;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using System.Collections.Generic;

 VB.Net

Imports System.IO
Imports System.Data
Imports System.Text
Imports System.Data.SqlClient
Imports System.Collections.Generic

اتصال به کنترل DataList
C #
 

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        dlContacts.DataSource = this.GetData();
        dlContacts.DataBind();
    }
}
 
private DataTable GetData()
{
    string conString = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;
    using (SqlConnection con = new SqlConnection(conString))
    {
        using (SqlCommand cmd = new SqlCommand("select top 6 * from customers"))
        {
            cmd.Connection = con;
            cmd.CommandType = CommandType.Text;
            using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
            {
                DataSet ds = new DataSet();
                sda.Fill(ds);
                return ds.Tables[0];
            }
        }
    }
}

VB.Net

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    If Not IsPostBack Then
        dlContacts.DataSource = Me.GetData()
        dlContacts.DataBind()
    End If
End Sub
 
Private Function GetData() As DataTable
    Dim conString As String = ConfigurationManager.ConnectionStrings("conStr").ConnectionString
    Using con As New SqlConnection(conString)
        Using cmd As New SqlCommand("select top 6 * from customers")
           cmd.Connection = con
           cmd.CommandType = CommandType.Text
           Using sda As New SqlDataAdapter(cmd)
                Dim ds As New DataSet()
                sda.Fill(ds)
                Return ds.Tables(0)
           End Using
        End Using
    End Using
End Function

چاپ داده های انتخاب شده DataList
هنگامی که دکمه Print کلیک می شود، رویداد handler زیر اجرا می شود. موارد کنترل شده یا انتخاب شده در کنترل DataList را بررسی می کند و موارد غیر قابل کنترل یا مواردی که انتخاب نشده اند را حذف می کند و سپس کنترل DataList را دوباره باز و در نهایت محتوای DataList را چاپ می کند.
C #

protected void Print(object sender, EventArgs e)
{
    DataTable dt = GetData();
    List<DataRow> rows = new List<DataRow>();
    foreach (DataListItem item in dlContacts.Items)
    {
        if (!(item.FindControl("CheckBox1") as CheckBox).Checked)
        {
            rows.Add(dt.Rows[item.ItemIndex]);
        }
    }
    foreach (DataRow row in rows)
    {
        dt.Rows.Remove(row);
    }
    dlContacts.DataSource = dt;
    dlContacts.DataBind();
    foreach (DataListItem item in dlContacts.Items)
    {
        item.FindControl("CheckBox1").Visible = false;
    }
    StringWriter sw = new StringWriter();
    HtmlTextWriter hw = new HtmlTextWriter(sw);
    dlContacts.RenderControl(hw);
    string html = sw.ToString().Replace("\"", "'").Replace(System.Environment.NewLine, "");
    StringBuilder sb = new StringBuilder();
    sb.Append("<script type = 'text/javascript'>");
    sb.Append("window.onload = new function(){");
    sb.Append("var printWin = window.open('', '', 'left=0");
    sb.Append(",top=0,width=1000,height=600,status=0');");
    sb.Append("printWin.document.write(\"");
    sb.Append(html);
    sb.Append("\");");
    sb.Append("printWin.document.close();");
    sb.Append("printWin.focus();");
    sb.Append("printWin.print();printWin.opener.location.href=printWin.opener.location.href;");
    sb.Append("printWin.close();};");
    sb.Append("</script>");
    ClientScript.RegisterStartupScript(this.GetType(), "GridPrint", sb.ToString());
}

VB.Net

Protected Sub Print(sender As Object, e As EventArgs)
    Dim dt As DataTable = GetData()
    Dim rows As New List(Of DataRow)()
    For Each item As DataListItem In dlContacts.Items
        If Not TryCast(item.FindControl("CheckBox1"), CheckBox).Checked Then
            rows.Add(dt.Rows(item.ItemIndex))
        End If
    Next
    For Each row As DataRow In rows
        dt.Rows.Remove(row)
    Next
    dlContacts.DataSource = dt
    dlContacts.DataBind()
    For Each item As DataListItem In dlContacts.Items
        item.FindControl("CheckBox1").Visible = False
    Next
    Dim sw As New StringWriter()
    Dim hw As New HtmlTextWriter(sw)
    dlContacts.RenderControl(hw)
    Dim html As String = sw.ToString().Replace("""", "'").Replace(System.Environment.NewLine, "")
    Dim sb As New StringBuilder()
    sb.Append("<script type = 'text/javascript'>")
    sb.Append("window.onload = new function(){")
    sb.Append("var printWin = window.open('', '', 'left=0")
    sb.Append(",top=0,width=1000,height=600,status=0');")
    sb.Append("printWin.document.write(""")
    sb.Append(html)
    sb.Append(""");")
    sb.Append("printWin.document.close();")
    sb.Append("printWin.focus();")
    sb.Append("printWin.print();printWin.opener.location.href=printWin.opener
.location.href;"
)
    sb.Append("printWin.close();};")
    sb.Append("</script>")
    ClientScript.RegisterStartupScript(Me.[GetType](), "GridPrint", sb.ToString())
End Sub

 


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

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