PDA

View Full Version : کار با دیتالیست ، چطوری میشه برای کنترل های درون دیتالیست رویداد نوشت ؟



میلاد قاضی پور
پنج شنبه 28 بهمن 1389, 18:15 عصر
سلام . من در مورد استفاده از دیتالیست سوألاتی داشتم:
- یک کنترل ایمیج باتون روی دیتالیست قرار دادم . میخوام با کلیک روی اون کنترل عکس مربوطه روی یک ایمیج در فرمم نمایش داده بشه . کد مربوطه رو در کدوم قسمت باید بنویسم آیا باید رویدادی تعریف کنم ؟

-عکسهای مربوط به ایمیج باتونها قراره از یک دایرکتوری در وب گرفته بشه و به عبارتی دیتاسورس دیتالیست یک دایرکتوری هست . چگونه دیتاسورس رو برابر اون دایرکتوری قرار بدم ؟

میلاد قاضی پور
جمعه 29 بهمن 1389, 16:21 عصر
سوأل رو واضح تر نوشتم تا انشالله دوستان بتونن کمک کنن.

actros
جمعه 29 بهمن 1389, 17:02 عصر
سلام . من در مورد استفاده از دیتالیست سوألاتی داشتم:
- یک کنترل ایمیج باتون روی دیتالیست قرار دادم . میخوام با کلیک روی اون کنترل عکس مربوطه روی یک ایمیج در فرمم نمایش داده بشه . کد مربوطه رو در کدوم قسمت باید بنویسم آیا باید رویدادی تعریف کنم ؟

-عکسهای مربوط به ایمیج باتونها قراره از یک دایرکتوری در وب گرفته بشه و به عبارتی دیتاسورس دیتالیست یک دایرکتوری هست . چگونه دیتاسورس رو برابر اون دایرکتوری قرار بدم ؟

نمی دونم سوال شما رو درست متوجه شدم یا نه؟
شما میخای تو دیتالیستت یه سری عکس داشته باشی با سایز کوچیک که وقتی روش کلیک کنی عکس با سایز اصلی نمایش داده بشه درسته؟
اگه اینطوری باشه بهتره آدرس عکسهاتو به صورت string در جدولی از دیتابیس ذخیزه کنی و بعد توسط یه datasource اونا رو بخونی و Datalist ات رو بهش وصل کنی.
بر فرض که اسم ستون عکس جدولت imageباشه. تو دیتالیستت کافیه این کد رو وارد کنی:


<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl ='<%# eval("images") %>'>
<asp:Image ID="Image1" runat="server" ImageUrl ='<%# eval("images") %>' Width="150" Height="150" />
</asp:HyperLink>اینطوری عکس با سایز کوچک نمایش داده میشه و با کلیک روی اون عکس با سایز اصلی در یک پنجره جدید به نمایش در میاد.
اگه بخای عکس اصلی تو همون صفحه نشون داده بشه یا باید از کنترلهای AjaxControlToolkit استفاده کنی مثل ModalPopUp یا از Jquery
من آژکسی شو رو اجرا کردم خواستی برات بذارم :دی

حالا برای نمونه از کار با رویداد SelectedIndexChangedبرات می ذارم:
این کد سطری که روش کلیک شده رو انتخاب می کنه و شما می تونی به خصوصیت های کنترلهای موجود در اون سطر دسترسی پیدا کنی.مثل Imageurl عکس یا متن یک Label و...
من اینجا دنبال خاصیت Imageurl کنترل image1 می گردم :

Protected Sub DataList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataList1.SelectedIndexChanged
Dim dli As DataListItem
Dim i As Integer = DataList1.SelectedItem.ItemIndex
Dim m As Integer = 0
For Each dli In DataList1.Items
If m = i Then
Dim i1 As String = DirectCast(dli.FindControl("image1"), Image).ImageUrl
Session("image") = i1
Exit Sub
End If
m = m + 1
Next
End Sub

میلاد قاضی پور
جمعه 29 بهمن 1389, 18:01 عصر
بزرگوار ممنون . اما میخوام تصویرم در یک ایمیج نمایش داده بشه . من کد زیر رو نوشتم اما تا وقتی دیتاسورس رو به دیتالیستم ندم نمیتونم امتحان کنم ببینم کدم کار میکنه یا نه !


protected void DataList1_SelectedIndexChanged(object sender, EventArgs e)
{
DataListItem item = new DataListItem(DataList1.SelectedIndex, ListItemType.SelectedItem);
Image img = (Image)item.FindControl("ImageButton1");
Label label = (Label)item.FindControl("Label1");

string bigImageUrl = img.ImageUrl.Replace(".jpg","big.jpg");
this.Image1.ImageUrl = bigImageUrl;


}
}