ورود

View Full Version : لینک های مستقل در gridview



hamhik
یک شنبه 29 بهمن 1385, 22:15 عصر
با سلام
من یک gridview می خوام درست کنم مثل همین قسمتی که در این سایت هست که سوالات کاربران رو به صورت لینک های مستقل در آورده ولی وقتی که در کنترل gridview یک فیلد hyperlink تعریف می کنم می خوام سوالات کاربرانم رو به صورت لینک های مستقل در بیاره ولی وقتی قسمت nagativeurl رو یک آدرس می دم کل لینک ها تنها به یک آدرس اشاره می کنند چطوری می تونم این کار رو انجام بدم؟؟آیا این کار شدنی هست؟؟؟؟

samanes
یک شنبه 29 بهمن 1385, 23:08 عصر
باید با کدنویسی این کارو انجام بدی در رویداد RowDataBound یه مقدار تلاش کن اگه نتونستی یا من یا یکی از دوستان یه نمونه کد می ذاریم..

Alireza_Salehi
دوشنبه 30 بهمن 1385, 00:26 صبح
رویداد RowDataBound لازم نیست (البته از اون طریق هم میشه انجام داد) ولی روش تروتمیز ترش اینه:

اگر آدرس هات تو فیلدی از دیتابیس ذخیره شدند کافیه یک TemplateField به ستونها اضافه کنی و درونش یک Hyperlink همی چیز به راحتی انجام میشه!
در مثال زیر یک جدول داریم با دو فیلد id و url .


<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id"
DataSourceID="SqlDataSource1" Style="z-index: 100; left: 277px; position: absolute;
top: 136px" Width="375px">
<Columns>
<asp:BoundField DataField="id" HeaderText="id" ReadOnly="True" SortExpression="id" />
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink runat="server" Text='<% #Eval("id")%>' NavigateUrl='<%#Eval("url")%>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>اگر هم تو دیتابیس نیست و بر اساس شرایطی باید ساخته بشه یک تابع تعریف می کنی و در این مثالی که زدم به جای EVAl از اون استفاده می کنی!

مثلا:

Public Function geturl() As String
'کد
Return "آدرس"
End Functionبعد تو اون کد قبلی '<%#Eval("url")%>' رو به این '<% #geturl()%>' تبدیل کنید!

برای دستکاری قسمتهای دیگر TemplateField به خصوصیاتش توجه کن(عکس زیر).