PDA

View Full Version : ایجاد یک منوی داینامیک



darioush01
سه شنبه 20 فروردین 1387, 22:49 عصر
من می خوام یه منوی داینامیک داشته باشم که کاربرم بتونه خودش بهش اضافه کنه یا حذف کنه و می خوام مقادیر یعنی
عناوین این منو ها و ساب منو ها توی table تو sql نگهداری بشن
می خوام یه راه بهینه پیشنهاد کنین طوری که بشه با Storedprocedure
بتونم مقادیر منو ها و ساب منو ها رو بازیابی کنم .

svm-webmaster
سه شنبه 20 فروردین 1387, 23:02 عصر
سلام دوست عزیز ، من یه کاریی برای ایجاد منو داینامیک در وب انجام دادم امیدوارم به دردت بخوره.
1 . یه منو ایجادکن مثلا
<asp:Menu ID="Menu2" runat="server">
</asp:Menu>
2 . در قسمت کد نویسی از این کد استفاده کن

If Not IsPostBack() Then
Dim m, c, p, cc, zz, d, s, x As Integer
p = 0
c = 0
s = 0
menuCommand.Connection = menuConnection
menuConnection.Close()
menuCommand.CommandText = "SELECT * FROM menu1 where (subid='" & p & "') "
menuDataAdapter.SelectCommand = menuCommand
menuConnection.Open()
menuDataAdapter.Fill(menuCompanyData)
c = menuCompanyData.Tables(0).Rows().Count
Dim arr1(0 To c - 1) As String
Dim arr2(0 To c - 1) As String
Dim arr3(0 To c - 1) As String
If menuCompanyData.Tables(0).Rows().Count <> 0 Then
For m = 0 To c - 1
Dim a, k, h As New MenuItem
a.Text = menuCompanyData.Tables(0).Rows(m).Item(1).ToString ()
Menu2.Items().Add(a)
arr1(m) = menuCompanyData.Tables(0).Rows(m).Item(0).ToString ()
If menuCompanyData.Tables(0).Rows(m).Item(2).ToString () <> "" Then
arr2(m) = menuCompanyData.Tables(0).Rows(m).Item(2).ToString ()
Menu2.Items(m).ImageUrl = ("~/images/") + arr2(m)
End If
If menuCompanyData.Tables(0).Rows(m).Item(4).ToString () <> "" Then
arr3(m) = menuCompanyData.Tables(0).Rows(m).Item(4).ToString ()
Menu2.Items(m).NavigateUrl = ("~/") + arr3(m)
End If
Next
End If
menuCommand1.Connection = menuConnection1
For x = 0 To c - 1
cc = -1
menuConnection1.Close()
menuCommand1.CommandText = "SELECT * FROM menu1 where (subid ='" & arr1(x) & "')"
menuDataAdapter1.SelectCommand = menuCommand1
menuConnection1.Open()
Dim menuCompanyData1 As New Data.DataSet
menuDataAdapter1.Fill(menuCompanyData1)
d = menuCompanyData1.Tables(0).Rows().Count
For zz = 0 To d - 1
Dim a, k, h, z As New MenuItem
a.Text = menuCompanyData1.Tables(0).Rows(zz).Item(1).ToStri ng
z.Text = menuCompanyData1.Tables(0).Rows(zz).Item(5).ToStri ng
cc = cc + 1
Menu2.Items(x).ChildItems.Add(a)
If menuCompanyData1.Tables(0).Rows(zz).Item(2).ToStri ng() <> "" Then
h.Text = menuCompanyData1.Tables(0).Rows(zz).Item(2).ToStri ng()
Menu2.Items(x).ChildItems(cc).ImageUrl = ("~/images/") + h.Text
End If
If menuCompanyData1.Tables(0).Rows(zz).Item(4).ToStri ng() <> "" Then
k.Text = menuCompanyData1.Tables(0).Rows(zz).Item(4).ToStri ng()
Menu2.Items(x).ChildItems(cc).NavigateUrl = ("~/") + k.Text
End If
Next
Next
d = 0
End If
End Sub
فیلد های جدول دیتابیس رو هم فکر کنم بتونی از روی کد هایی که گذاشتم در بیاوری.

در ضمن می دونم که تو قسمت C# هستیم اما من این را با VB نوشتم . امیدوارم بتونی تبدیلش کنی یا حداقل تونسته باشم راهنمایت کنم.
موفق باشی

gdevnb
سه شنبه 20 فروردین 1387, 23:07 عصر
اطلاعات رو به صورت درختی تو یه جدول ذخیره کن به اینصورت که هر فرزند یه پدر داره (ساب منوها) یعنی یه فیلد بزار برای پدراشون و منوهای اصلی هم که پدر ندارن مقدار null میگیرن.
یکم سخته .

موفق باشید

aliil
سه شنبه 20 فروردین 1387, 23:08 عصر
من می خوام یه منوی داینامیک داشته باشم که کاربرم بتونه خودش بهش اضافه کنه یا حذف کنه و می خوام مقادیر یعنی
عناوین این منو ها و ساب منو ها توی table تو sql نگهداری بشن
می خوام یه راه بهینه پیشنهاد کنین طوری که بشه با Storedprocedure
بتونم مقادیر منو ها و ساب منو ها رو بازیابی کنم .

به نظر من راه حل بهتر برای نگهداری تنظیمات ساخت منو ،ذخیره اونا داخل فایل XML هست.

Mojtaba_ss
سه شنبه 20 فروردین 1387, 23:49 عصر
این سوال تو بخش سی شارپ پرسیده شده و جواب مربوط به وب هستش.

داریوش عزیز شما منظورت توی وب هستش و یا توی وین؟

svm-webmaster
پنج شنبه 22 فروردین 1387, 10:50 صبح
این سوال تو بخش سی شارپ پرسیده شده و جواب مربوط به وب هستش.
دوست عزیز من هم میدانم که این سوال در بخش سی شارپ پرسیده شده و جواب من مربوط به وب است . اگر دقت می کردید من گفته ام .

سلام دوست عزیز ، من یه کاریی برای ایجاد منو داینامیک در وب انجام دادم امیدوارم به دردت بخوره.
منظور من گمراه کردن این دوستمان و یا سایر دوستان نبوده است. من در یک قسمت از منو داینامیک در وب مشکلی داشتم که به این تاپیک برخوردم. همانطور که می بینید کدهای من از لحاظ فنی زیاد جالب در نیامده است ولی کار می کند. برای همین آنها را در این قسمت قرار دادم تا شاید راهنمایی برای دوستمان داریوش باشد. اگر باعث گمراهی و ناراحتی کسی شده ام متاسفم.