PDA

View Full Version : اشکال مهم در مورد hyperlink



mah61
دوشنبه 21 شهریور 1384, 10:33 صبح
من یک hyperlinkدارم که در navigateurl آن یک تابع فراخوانی کرده ام تا یک ادرس را برگرداند.ولی خطا می دهد.در حالیکه مثل همین کار را در vb با همین تابع کرده ام و نتیجه کاملا درست بوده است.علت چیست؟



<asp:HyperLink Runat="server" BackColor="lightgray" ForeColor="black" Height="20" ID="Hyperlink1"
NavigateUrl='<% geturl_member(Container.DataItem("id") ) %>'>
<%# DataBinder.Eval(Container.DataItem, "uname") %>
</asp:HyperLink>

خطایی که می دهد(از navigateurl):


'System.Web.UI.WebControls.DataListItem.DataItem' denotes a 'property' where a 'method' was expected



و تابع مربوطه:


public string geturl_member(int stuID)
{

string url= "frm_tracing1.aspx?id=";
url = url + stuID.ToString();
return url;
}

Mahdavi
دوشنبه 21 شهریور 1384, 13:55 عصر
فکر کنم یه اشتباه تایپی کوچیک دارید :

<% geturl_member(Container.DataItem("id") ) %>
رو به

<%# geturl_member(Container.DataItem("id") ) %>

و تابع هم فکر کنم باید protected باشه

Peyman_Ranjbar
دوشنبه 21 شهریور 1384, 16:12 عصر
سلام
آقای مهدوی تا جایی که من اطلاع دارم استفاده از <%# برای بایند کردن دیتابیس هست
این رو امتحان بکنید


<% geturl_member(Container.DataItem("id") ) %>

کد رو به این کد زیری تغییر بدید



<% = geturl_member(Container.DataItem("id") ) %>

mohsen99
دوشنبه 21 شهریور 1384, 16:14 عصر
public string geturl_member(int stuID)


بجای int بنویسید Object بعد convert کنید

kochol
دوشنبه 21 شهریور 1384, 18:13 عصر
سلام
خوب می تونید از یک link button استفاه کنید و در روال کلیک آن تابع را فراخوانی کنی.