PDA

View Full Version : استفاده ازlink button در datagraid



بهرو
شنبه 24 بهمن 1383, 10:48 صبح
من یک datagrid دارم که در داخل یک templeat cloumn های ان یک link button قرار داده ام من می خواهم کاربر با کلیک بر روی هر کدام از مهدن ها به صفحع بعد یعنی متن خبر برود وid خبر با کلیک بر ان لینک به صفحه متن خبر منتقل شود لطفا مر را راهنمایی کنیک که چگونه می توانم بهCommandArgument,و رویداد های ان link button دسترسی پیدا کنم
ایا شما راه دیگری برای انتقال مقادیر مثلا id به فرم دیگر از طریق datagraid سراغ ندارید :flower:

Behrouz_Rad
شنبه 24 بهمن 1383, 11:15 صبح
Code Behind:


Sub Page_Load
Dim cnn As SqlConnection
Dim cmd As SqlCommand

cnn = New SqlConnection( "Server=localhost;UID=sa;PWD=;Database=MyDatabase" )
cmd = New SqlCommand( "Select link_title, link_url From MyTable", cnn )
cnn.Open()
DataGrid.DataSource = cmd.ExecuteReader()
DataGrid.DataBind()
cnn.Close()
End Sub

aspx:


<asp:DataGrid
ID="DataGrid"
AutoGenerateColumns="False"
EnableViewState="False"
ShowHeader="False"
CellPadding="5"
Runat="Server">

<Columns>
<asp:HyperLinkColumn
DataNavigateUrlField="link_url"
DataTextField="link_title" />
</Columns>

</asp:DataGrid>

نیاز به Link Button ندارید.
موفق باشید.

Vahid_Nasiri
شنبه 24 بهمن 1383, 11:25 صبح
پاسخ فوق صحیح نیست.
هدف بایند کردن داده ها به دیتاگرید نبوده. بلکه دریافت یک id و عکس العمل نشان دادن به آن بوده.
روش انجام کار:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskaddingbuttoncolumnstodatagridwebcontrol.asp

Behrouz_Rad
شنبه 24 بهمن 1383, 12:10 عصر
آقای نصیری مگر من چی نوشتم:
یعنی این کد غلطه:


<asp:DataGrid
ID="DataGrid"
AutoGenerateColumns="False"
EnableViewState="False"
ShowHeader="False"
CellPadding="5"
Runat="Server">

<Columns>
<asp:HyperLinkColumn
DataNavigateUrlField="link_url"
DataTextField="link_title" />
</Columns>

</asp:DataGrid>

می خوام بدونم اشکال کد فوق چیه؟
مرسی.
:oops:

Vahid_Nasiri
شنبه 24 بهمن 1383, 12:39 عصر
با توجه به اینکه صورت سوال مربوط به *نحوه ی استفاده* از آن و *دریافت ID ردیف* مربوطه است کدهای شما ارتباطی به این تاپیک پیدا نمی کنند.

بهرو
شنبه 24 بهمن 1383, 13:54 عصر
من منظورم این است که کاربر با کلیک بر فیلدی از پایگاه داده مثلا title کد مربوط به id با استفاده از CommandArgument به صفحه بعد ارسال شود
لطفا جواب دهید :flower:

Vahid_Nasiri
شنبه 24 بهمن 1383, 13:58 عصر
برای ارسال به صفحه بعد همانطور که حتما پست های قبل را ملاحظه کرده اید ابتدا باید ID را یافت (که روش در مقاله هست). سپس برای ارسال باید آنرا برای مثال در یک متغیر سشن قرار داد و سپس آنرا در صفحه ی بعدی خواند و عکس العمل نشان دارد. برای رفتن به یک صفحه دیگر هم برای مثال Response.Redirect را می توانید استفاده کنید.

Behrouz_Rad
شنبه 24 بهمن 1383, 13:59 عصر
خیلی عذر می خوام آقای نصیری ولی بنده هنوز متوجه نشدم.
ایشون می خوان یک DataGrid داشته باشند که عنوان خبرها در ردیف های DataGrid به صورت یک لینک به صفحه Details مرتبط بشه و ID خبر رو به صفحه Deatils پاس بدن.
روش زیر به نظرم نباید مشکلی داشته باشه:


<asp:DataGrid
ID="DataGrid"
AutoGenerateColumns="False"
EnableViewState="False"
CellPadding="5"
Runat="Server">

<Columns>
<asp:HyperLinkColumn
DataNavigateUrlField="Subject_id"
DataTextField="Subject"
DataNavigateUrlFormatString="Details.aspx?id={0}" />
</Columns>

</asp:DataGrid>

اگر اشتباهی هست لطفا بفرمایید. برای اطلاعات خودم می خوام.
با تشکر.
:oops:

Vahid_Nasiri
شنبه 24 بهمن 1383, 14:18 عصر
این روش جدید عنوان شده (که مربوط به موضوع تاپیک هم هست ) راه حل دیگری برای اینکار نیز می باشد. (موارد قبلی بی ربط بود)

Behrouz_Rad
شنبه 24 بهمن 1383, 14:25 عصر
خیلی ممنونم جناب نصیری. :flower: :flower: :flower: :flower: :wise1: