• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

مشکل با TemplateColumn در کنترل DataGrid

mehdivk

Registered User
تاریخ عضویت
5 آپریل 2006
نوشته‌ها
319
لایک‌ها
0
سلام به همه ی دوستان . مشکل من در رابطه با کنترل Datagrid و TemplateColumn می باشه

فرض کنید DataSource کنترل DataGrid من یه چيزی مثل جدول زیر باشه:

Name AccountType Family UserID
----------------- ----------------- ------------------------- -------------------
نقی احدی 0 1
مهدی ولیخانی 1 2
سعید احسانی 1 3

من در DataGrid یک TemplateColumn دارم به صورت زیر

<TemplateColumn>
<ItemTemplate>
<asp:hyperlink ID="lnkEdit" Runat="Server" NavigateUrl='Default.aspx?content=UserProfile&userID=<%#DataBinder.Eval(Container.DataItem,"UserID")%>'>
<%#DataBinder.Eval(Container.DataItem,"Name")%>&nbsp;<%#DataBinder.Eval(Container.DataItem,"Family")%>
</asp:HyperLink>
</ItemTemplate>
</TemplateColumn>​

وقتی این صفحه را در مرورگر می بینم روی هر لينکی که میرم آدرس توليد شده برای اون لينک دقیقا مقدار NavigateUrl در Source صفحه می باشه یعنی شکل زیر :
Default.aspx?content=UserProfile&userID=<%#DataBinder.Eval(Container.DataItem,"UserID")%>​

حالا همین کار رو با تگ <a> انجام میدم همه چی درست می شه یعنی TemplateColumn من به صورت زیر می شه:

<TemplateColumn>
<ItemTemplate>
<a href='Default.aspx?content=UserProfile&userID=<%#DataBinder.Eval(Container.DataItem,"UserID")%>'>
<%#DataBinder.Eval(Container.DataItem,"Name")%>&nbsp;<%#DataBinder.Eval(Container.DataItem,"Family")%>
</a>
</ItemTemplate>
</TemplateColumn>​

و لينک های توليد شده به صورت زیر میشه
Default.aspx?content=UserProfile&userID=1
Default.aspx?content=UserProfile&userID=2
Default.aspx?content=UserProfile&userID=3​


دوستان عزیز من به دليل اينکه می خوام از امکانات دیگر کنترل asp:HyperLink همچون Visible استفاده کنم مجبورم از اين کنترل به جای تگ <a> استفاده کنم.
از دوستان کسی هست که بدون راه حل اين مشکل چیه؟
 

enmat

کاربر تازه وارد
تاریخ عضویت
16 مارس 2006
نوشته‌ها
22
لایک‌ها
0
به نقل از mehdivk :
دوستان عزیز من به دليل اينکه می خوام از امکانات دیگر کنترل asp:HyperLink همچون Visible استفاده کنم مجبورم از اين کنترل به جای تگ <a> استفاده کنم.
از دوستان کسی هست که بدون راه حل اين مشکل چیه؟


شما ميتوانيد به جاي استفاده از HyperLink از شيء LinkBottun استفاده كنيد و در رويداد ItemCommand ديتا گريد

از دستور زير استفاده كنيد :

کد:
if(e.CommandName=="cmd"){ Response.Redirect("Yourpage.aspx?x="+e.Item.Cells[x].Text)
 

mehdivk

Registered User
تاریخ عضویت
5 آپریل 2006
نوشته‌ها
319
لایک‌ها
0
با تشکر از راه حل شما دوست عزیز
 
بالا