PDA

View Full Version : منو



probit
یک شنبه 12 شهریور 1385, 10:14 صبح
سلام
یه سوال داشتم ، می خواهم یه منوی دو یا سه سطحی درست کنم که لینک های اون از توی دیتابیس بیاد این لینکها داینامیک هستند و ممکن است کم یا زیاد شوند چه راه حلی را شما پیشنهاد می کنید
از منوی خود asp می خواستم استفاده کنم که نشد چون اطلاعات را از xml یا site map می گیره و منم با اینها تا حالا کار نکردم (اضافه یا حذف کردن اطلاعات) و دیگه اینکه نمی شد اون را سمت راست برد

probit
دوشنبه 13 شهریور 1385, 09:28 صبح
یعنی کسی نمی دونه؟

nazaninam
دوشنبه 13 شهریور 1385, 14:38 عصر
دوست عزیز من قبلا این مسئله رو توی یک مقاله کامل توضیح دادم ولی متاسفانه پاک شده ....
بریم سر اصل مطلب »
دو تا راه خوب داره : 1- هر دفعه که قسمتی از منو با جدول دیتابیس اضافه شد فایل xml رو بازنویسی کنید
2- با حلقه های تو در تو کامل منو رو از بانک لود کنید
روش دوم رو توضیح میدم امروز ولی بگم که روش اول خیلی سریع تره:
خوب اول یک منو به نام Menu1 بگذارید داخل صفحه
در ضمن در کد زیر باید حتما connectionstring رو تعریف کنید



Dim ds As New DataSet

Using con As New SqlConnection(connectionstring)
Dim cmd As New SqlCommand("Select_AllList", con)
With cmd
.CommandType = CommandType.StoredProcedure
End With
Dim da As New SqlDataAdapter(cmd)
Try
con.Open()
da.Fill(ds)
Finally
con.Close()
End Try


End Using

Dim dr As New DataRelation("Node_child", ds.Tables(0).Columns("cat_pk"), ds.Tables(1).Columns("cat_fk"), False)
ds.Relations.Add(dr)
Menu1.Items.Clear()

Dim i As Integer = 0

For Each nrow As DataRow In ds.Relations("Node_child").ParentTable.Rows

Dim item As New MenuItem

item.Text = nrow.Item("cat_name").ToString
item.ToolTip = nrow.Item("cat_desc").ToString
item.NavigateUrl = "~/branch_list.aspx?code=" + nrow.Item("cat_pk").ToString
item.Selectable = False
Menu1.Items.Add(item)

For Each crow As DataRow In nrow.GetChildRows("Node_child")
Dim subitem As New MenuItem

subitem.Text = crow.Item("branch_name").ToString
subitem.ToolTip = crow.Item("branch_desc").ToString
subitem.NavigateUrl = "~/adver_list.aspx?code=" + crow.Item("branch_pk").ToString
Menu1.Items.Item(i).ChildItems.Add(subitem)

Next
i += 1
Next


جدول و stored procedure مربوط رو هم همراهش attach کردم

probit
دوشنبه 13 شهریور 1385, 17:35 عصر
سلام

con.Open()
da.Fill(ds)

برنامه ای که نوشتید روی این کد خطای


Could not find stored procedure 'Select_AllList'

را میگیره اگه ممکنه این stored procedure را هم بفرستید.
برای فارسی کردن منو باید چکار کرد منظورم جایی است که submenu ها باز می شوند که باید در سمت چپ منو باز شود

nazaninam
دوشنبه 13 شهریور 1385, 19:12 عصر
دوست عزیز من این کارو کردم به نوشته من دقت کنید یک atach به نام menu هست که باید توی query analyzer اجراش کنید
موفق باشید

probit
سه شنبه 14 شهریور 1385, 10:37 صبح
مرسی nazaninam
کمک بزرگی کردید