الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Management News

مغلق
بدأه سلطان الحمدان في 3 أكتوبر 2004 · 13 رد · 1,752 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

انا عندي داتا بيز ولنفرض انها تحتوي الاخبار وعناوينها ورقم خاص بكل خبر

اللي اريد اعمله هو الاتي

كيف اقدر اسوي linkbutton لكن عنوان (علما ان عدد العناوين متغير)

وبالرابط اللي يحتوي linkbutton اضع ال id لهذا العنوان حتي منه اقدر احصل على بقية الخبر من db

واعرضه كامل

تقريبا نفس فكرة عناوين المنتدي هنا

وهل هالطريقه صحيحه والا لايمكن تصير بال asp.net على vb.net

ارجو من الجميع مساعدتي

اخوكم سلطان الحمدان

#2

عليك استخدام داتا غريد ومن ثم اضافة هايبرلنك كولم على الشكل التالي

<Columns>
<asp:HyperLinkColumn HeaderText=" News ID" 
DataTextField="ID" DataNavigateUrlField="ID"
DataNavigateUrlFormatString="Details.aspx?ID={0}"  />
.
.
.
</Columns>

حيث Details.aspx?ID={0 هي صفحة التي تريد التحويل اليها لعرض التفاصيل {0} سوف يستبدل بال ID

تم تعديل هذه المشاركة بواسطة DotNetExpert في 3 أكتوبر 2004 في 15:02

وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان

بيسكرو الغابي بيضلهن متل الشتي يدقوا على بوابي على بوابي

يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي

برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي

يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو

http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3

#3

هلا عزيزي (الخبير)

شي جديد جد علي وهو اني لما اسوي dataset تجي فارغه!

اليك الكود

#Region " Web Form Designer Generated Code "

    'This call is required by the Web Form Designer.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.DataSet1 = New System.Data.DataSet
        Me.Table1 = New System.Data.DataTable
        Me.Column1 = New System.Data.DataColumn
        Me.Column2 = New System.Data.DataColumn
        CType(Me.DataSet1, System.ComponentModel.ISupportInitialize).BeginInit()
        CType(Me.Table1, System.ComponentModel.ISupportInitialize).BeginInit()
        '
        'DataSet1
        '
        Me.DataSet1.DataSetName = "NewDataSet"
        Me.DataSet1.Locale = New System.Globalization.CultureInfo("en-US")
        Me.DataSet1.Tables.AddRange(New System.Data.DataTable() {Me.Table1})
        '
        'Table1
        '
        Me.Table1.Columns.AddRange(New System.Data.DataColumn() {Me.Column1, Me.Column2})
        Me.Table1.TableName = "Table1"
        '
        'Column1
        '
        Me.Column1.ColumnName = "Column1"
        '
        'Column2
        '
        Me.Column2.ColumnName = "Column2"
        CType(Me.DataSet1, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.Table1, System.ComponentModel.ISupportInitialize).EndInit()

    End Sub
    Public WithEvents DataSet1 As System.Data.DataSet
    Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
    Protected WithEvents Table1 As System.Data.DataTable
    Protected WithEvents Column1 As System.Data.DataColumn
    Protected WithEvents Column2 As System.Data.DataColumn

    'NOTE: The following placeholder declaration is required by the Web Form Designer.
    'Do not delete or move it.
    Private designerPlaceholderDeclaration As System.Object

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: This method call is required by the Web Form Designer
        'Do not modify it using the code editor.
        InitializeComponent()
    End Sub

#End Region
============================
Dim strCn As String
        strCn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("news.mdb")
        Dim cn As New OleDbConnection(strCn)
        cn.Open()
        Dim ada As New OleDbDataAdapter("select wname,title From news ", strCn)
        ada.Fill(DataSet1, "table1")
        DataGrid1.DataSource = DataSet1.Tables(0).DefaultView
        DataGrid1.DataBind()

الشي الاخر

كيف اقدر اخلي نفس العنوان هو linkbutton

اقتباس
حيث Details.aspx?ID={0 هي صفحة التي تريد التحويل اليها لعرض التفاصيل {0} سوف يستبدل بال ID

هل تقصد بالرقم {0} قيمه محددة والا هي قيمة row موجودة في dataset

-----

ياليت لو يكون فيه file لمثال صغير منفذ لاني والله لي يومين وانا مادري وين المشكله

-----------------------------------------

تعبتك معي لكن اخوك الصغير واتحمله

-----------------------------------------

#4
اقتباس
شي جديد جد علي وهو اني لما اسوي dataset تجي فارغه!

اعتقد ان السبب هو انشاء اولا تيبل باسم Table1 ثم اضافة المعلومات الى table1 جرب الكود التالي

 cn.Open()
 Dim ada As New OleDbDataAdapter("select wname,title From news ", strCn)
DataSet1.Tables("Table1").Clear()
 ada.Fill(DataSet1, "Table1")
 DataGrid1.DataSource = DataSet1.Tables("Table1").DefaultView
 DataGrid1.DataBind()

اقتباس
كيف اقدر اخلي نفس العنوان هو linkbutton

تستطيع ذلك عن طريق تحديد خاصية TextDataField صمن ال HyperLinkColumn بالشكل التالي

<Columns>
<asp:HyperLinkColumn HeaderText=" News title" 
DataTextField="title" DataNavigateUrlField="ID"
DataNavigateUrlFormatString="Details.aspx?ID={0}"  />
.
.
.
</Columns>

اقتباس
هل تقصد بالرقم {0} قيمه محددة والا هي قيمة row موجودة في dataset

ان{0} هي ببساطة ما سوف يستبدل بقيمة الـ DataNavigateUrlField td في كل سطر

لمزيد من المعلومات عن ال {0} انظر ملفات المساعدة التي تاتي مع الدوت نت ل

String.Format()

ملاحظة 1 : هنا تحتاج لحقل في الجدول يدعى ID او حقل يشابهه وذلك لتعريف كل سجل من الجدول بشكل فريد

ملاحظة 2. اسماء الجداول ضمن الداتا ست حساسة لحالة الاحرف كبيرة او صغيرة. ولكنك عندما تبحث عن جدول ضمن داتا ست فان الدوت نت يقوم اولا باجراء البحث مع الانتباه لحالة الاحرف وعندما لا يجد شيءا فانه يقوم بالبحث مرة اخرى بدون الانتباه لحالة الاحرف

وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان

بيسكرو الغابي بيضلهن متل الشتي يدقوا على بوابي على بوابي

يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي

برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي

يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو

http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3

#5

هلا اخوي

والله نسخت الكود زي ماهو ولكن تجي فارغة ماردي وش القصه

ابي اشرحلك اللي اسويه بالتفصيل يمكن فيه خطاء في الخيارات

==================

الان لما اسوي الداتا ست عن طريق الادوات مو عن طريق الكود انا اقول بانشاء جدول واضع فيه columns نفس عدد ونوع ال columns اللي موجوده بصيغة الاستعلاد هل كذا هالشي صحيح

مثلا:

لو كانت هذي جملة الاستعلام: select name,id from news

1: انا اعمل dataset واسميها dataset1

2: ادخل على خيار (Table (Collection الموجود ضمن خصائصها واعمل جدول واسميه Table1 واعمل لهذا الجدول عمودين الاول اسمه Column1 ومن نوع String والثاني اسمه Column2 ومن نوع int16

واضيف على خصائص datagrid اللي مسميها datagrid1 التالي

DataMember: Table1

Datasource: DataSet1

وبعدين ادخل على الكود وضح هذا الكود

Dim strCn As String
        strCn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("news.mdb")
        Dim cn As New OleDbConnection(strCn)
        cn.Open()
        Dim ada As New OleDbDataAdapter("select name,id  From news ", strCn)
        ada.Fill(DataSet1, "Table1")
احيان اضع السطر التالي واحيان اشيله للتجربه ولكن نفس المشكلة'
        DataGrid1.DataSource = DataSet1.Tables("Table1").DefaultView
      
  DataGrid1.DataBind()

هل هذا العمل صحيح والا خاطئ

تحياتي لك

تم تعديل هذه المشاركة بواسطة سلطان الحمدان في 4 أكتوبر 2004 في 11:28

#6

قم باستبدال السطر التالي

ada.Fill(DataSet1, "Table1")
DataGrid1.DataSource = DataSet1.Tables("Table1").DefaultView

ب

ada.Fill(DataSet1,DataSet.Tables(0).TableName)
DataGrid1.DataSource = DataSet1
DataGrid1.BindData()

ملاحظة 1: قم باعطاء خاصية ال ID لل DataColumn نفس اسم العمود كما في قاعدة البيانات. اي هنا في مثالك الحالي name , id

ملاحظة 2: لا تحتاج هنا الى تحديد خاصية DataMember لوجود جدول واحد فقط.

ملاحظة 3 : بما انك قمت بفتح التصال مع قاعدة البيانات يدويا فمن الافضل انو تقوم باغلاقه باستدعاء close() بعد استدعاء ال fill

ملاحظة 4 :من الافضل استخدام Int32 لل ID بدل Int16

وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان

بيسكرو الغابي بيضلهن متل الشتي يدقوا على بوابي على بوابي

يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي

برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي

يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو

http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3

#7

الله يعطيك الف الف عافيه

ابشرك اخيرا حمّل البيانات من الداتا بيز

لكن سويت paging لل datagrid لكن ماينفذ وماتجي االا الصفحه الاولى والصفحات الثانيه ماتجي

وش المشكله هل فيه كود نكتبه في دخل الكود حتي نشغل هالخاصيه والا كيف؟

تحياتي لشخصك الكريم

#8

بالطبع انا خاصية AllowPaging لوحدها لن تعمل كما تريد.

لمعلومات عن ال paging اقرا المقال التالي

http://www.dotnet247.com/247reference/a.as...26F8C883E6.dcik

وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان

بيسكرو الغابي بيضلهن متل الشتي يدقوا على بوابي على بوابي

يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي

برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي

يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو

http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3

#9

اتيت بالجواب الكافي و الشافي

باقي مشكلة بسيطه واعتقد ان حلها ابسط وهي الاتي ووالله اني خجلان من كثر الاسئله اللي طرحتها عليك

ولكن طمعا مني في رحابة صدرك اليك اخر استفساراتي :

1-قدرت اعمل Upload لملف من صفحه clint ولكن كيف اعرف نوع الملف حتي اجبر المستخدم ادخال صوره مثلا فقط من نوع JPG او GIF .....

2-كيف اعمل للملف download علما ان مسار الملف متغير فلكل خبر صوره ,وانا سمي الملف - كما هو واضح فالكود- باسم من عندي حتي ماتتشابه الااسماء في الجلد وهذا الاسم هو عباره عن ال id اللي للخبر لانه لايمكن ان يتكرر

واليك كود ال Upload :

<%@ Page Language="VB" AutoEventWireup="True" %>
<HTML>
	<HEAD>
  <script language="VB" runat="server">
  
       Sub Button1_Click(Source As Object, e As EventArgs)                    
            If Not (File1.PostedFile Is Nothing) Then
                Try
               'هنا احفظ الملف في المسار المحدد في مجلد السيرفر واعطيه اسم متغير هو رقم الخبر
                    File1.PostedFile.SaveAs(("C:\Inetpub\wwwroot\Image\" & Request.QueryString("ID"))
                    Span1.InnerHtml = "</b><br>File uploaded successfully to <b>" & _
                                      File1.Value & "</b> on the Web server"
                Catch exc As Exception
                    Span1.InnerHtml = "Error saving file <b>" & _
                                      File1.Value & "</b><br>" & exc.ToString()
                End Try
            End If
        End Sub 'Button1_Click 
  </script>
	</HEAD>
	<body>
  <form enctype="multipart/form-data" runat="server" ID="Form1">
 	 <P>
    Select File to Upload: 
       <input id="File1" 
              type="file"
              runat="server">
 	 </p>
       <span id=Span1 
             style="font: 8pt verdana;" 
             runat="server" />

       <p>
    <input type="button" id="Button1" value="Upload" OnServerClick="Button1_Click" runat="server"
   	 NAME="Button1">
 	 </P>
  </form>
	</body>
</HTML>

والله يعطيك الف شكر اخي العزيز واستاذي الفاضل

#10

صار رح يطلعلي حصة بالمشروع يا سلطانicon6.gif

اقتباس
1-قدرت اعمل Upload لملف من صفحه clint ولكن كيف اعرف نوع الملف حتي اجبر المستخدم ادخال صوره مثلا فقط من نوع JPG او GIF .....

File1.PostedFile تعطيك كائنا من نوع HttpPostedFile

هذا الكائن له خواص منها

ContentLength
ContentType 
FileName
InputStream

سوف اترك لك تحديد طريقة معرفة نوع الملف الذي رفع الى السرفر عن طريق احد هذه الخواص.icon10.gif

اقتباس
2-كيف اعمل للملف download علما ان مسار الملف متغير فلكل خبر صوره ,وانا سمي الملف - كما هو واضح فالكود- باسم من عندي حتي ماتتشابه الااسماء في الجلد وهذا الاسم هو عباره عن ال id اللي للخبر لانه لايمكن ان يتكرر

بنفس الطريقة التي تسمي بها الصورة تستطيع استعادتها. استخدم Image من داخل ال ASP.Net بدل استخدام معرف img عادي و تستطيع تعين الصورة التي تريد اظهارها عن طريق خاصية ImageUrl

ملاحظة :

اعتقد انك نسيت تحديد لاحقة الملف في المود التالي

File1.PostedFile.SaveAs(("C:\Inetpub\wwwroot\Image\" & Request.QueryString("ID"))

وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان

بيسكرو الغابي بيضلهن متل الشتي يدقوا على بوابي على بوابي

يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي

برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي

يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو

http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3

#11

DotNetExpert

والله لك كل الشكر ولك لك المشروع ههه

عزيزي لما اكتب الكود التالي

File1.ContentType

يرجع لي النوع على انه ملف :file

ولا يردي لي jpg او gif

انا جربت هالخاصيه قبل لكن قلت انه فيه حل غيرها

انتظرك

#12

من المفترض ان ترجع ContentType نوع Mime للملف اي مثلا image/jpg او image/gif لكنني لم اجربها. على كل حال تستطيع استخدام الخاصية FileName التي تعطيك اسم اللف وذلك للتاكد ان كان ينتهي ب jpg او gif

كما انك تستطيع استخدام ال InputStream على الشكل التالي

Image img = Image.FromStream(File1.PostedFile.InputStream)

وفي حالة رمي استثناء من نوع InvalidParameterException فهذا يعني ان الملف المرفوع ليس صورة

وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان

بيسكرو الغابي بيضلهن متل الشتي يدقوا على بوابي على بوابي

يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي

برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي

يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو

http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3

#13

لقد ارفقت صفحة ASP.NET لتحميل ملفات على السرفر و عرض معلومات عنها.

تستطيع هنا مشاهدة كيف يمكنك عن طريق ContentType و FileName معرفة فيما اذا كان الملف المرسل صورة ام لا.

هذه الصفحة لا تحفظ الملف المرسل على السرفر. فقط تقوم بقراءة المعلومات

upload.aspx

وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان

بيسكرو الغابي بيضلهن متل الشتي يدقوا على بوابي على بوابي

يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي

برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي

يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو

http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3

#14

الله يسعد ايامك دووووم

ومبرووووووووووووك الف مبروك وتستاهل يالخبير

والحمد لله كل شي صار تمام والله يوفقك دنيا ودين

وكل الشكر على الملف اللي اختصر الطريق ....

تحياتي سلطان الحمدان

هذا الموضوع مغلق.

مواضيع مشابهة