PDA

View Full Version : <%# Bind("ID") %>



komeil64
یک شنبه 15 بهمن 1385, 18:01 عصر
سلام
من مقادیری رو با یک کنترل access data source وارد دیتا گرید کردم
یکی از فیلدها رو تبدیل کردم به هایپر لینک
توی قسمت navigator url هایپر لینک جولوی لینک صفحه مورد نظرم این را نوشتم:
'~/veiwbook.aspx?ID=<%# Bind("ID") %>'
یعنی می خوام آی دی اون رکورد رو بفرسته صفحه مورد نظر
اما موقع اجرا جلوی آدرس صفحه همون جمله بایند رو می نویسه
چی کارش کنم؟

arash_coder
یک شنبه 15 بهمن 1385, 19:15 عصر
باید یک column از نوع Template اضافه کنی و سپس یک HyperLink را در آن قرار بدی و
bind id را در هایپر لینک جولوی لینک قرار بدی.
موفق باشید.

komeil64
یک شنبه 15 بهمن 1385, 19:38 عصر
سلام
من قبلا همین کار رو با دات نت قدیمی کرده بودم ولی با این جدیده اچ تی ام ال هاش یه ذره فرق کرده
این کد دیتا گریدمه:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
CellPadding="4" DataKeyNames="ID" DataSourceID="AccessDataSource1" Font-Names="Tahoma"
ForeColor="#333333" GridLines="None" Width="100%" DataMember="DefaultView">
<PagerSettings Visible="False" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<Columns>

<asp:BoundField DataField="price" HeaderText="قیمت" SortExpression="price" />
<asp:BoundField DataField="ent" HeaderText="انتشارات" SortExpression="ent" />
<asp:BoundField DataField="writer" HeaderText="نویسنده" SortExpression="writer" />
<asp:BoundField DataField="name" HeaderText="نام کتاب" SortExpression="name" />

</Columns>
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<EditRowStyle BackColor="#999999" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/db.mdb"
SelectCommand="SELECT [name], [writer], [ent], [price], [ID] FROM [tblbook] ORDER BY [ID] DESC">
</asp:AccessDataSource>

حالا می خوام به جای این خط یه لینک بذارم که فیلد آی دی رو اضافه کنه به آدرس صفحه بعد

<asp:BoundField DataField="name" HeaderText="نام کتاب" SortExpression="name" />
ممنون

Alireza_Salehi
یک شنبه 15 بهمن 1385, 19:52 عصر
چون HyperLink رویداد DataBinding نداره نمی تونی از این روش استفاده کنی ، باید از TemplateField استفاده کنی !

در این کدت هم که معلومه از BoundField استفاده شده ، هایپرلینک به تنهایی قابلیت انقیاد داده رو نداره باید در TemplateField استفاده بشه!

در ضمن این کدت رو تو تگ کد قرار بده بشه خوندش!



<Columns>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
SortExpression="id" />
<asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink runat="Server" NavigateUrl='<%# "~/veiwbook.aspx?ID=" + Eval("ID").ToString() %>' Text="Link"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
برای تولید آدرس مورد نظر هم این لینک رو ببین:
http://www.barnamenevis.org/forum/showthread.php?t=59822

komeil64
یک شنبه 15 بهمن 1385, 19:57 عصر
سلام
اونم میذارم نمیشه شما مثالی ندارید؟
ممنون
کارم خیلی گیر کرده

komeil64
یک شنبه 15 بهمن 1385, 20:01 عصر
این کد رو هم که می نویسم دیتا ویو ارور میده و به هم می خوره:

[code]
<asp:TemplateField><ItemTemplate><asp:HyperLink Text='<%# Bind("name") %>' NavigateUrl='~/veiwbook.aspx?ID=<%# Bind("ID") %>'></asp:HyperLink></ItemTemplate></asp:TemplateField>

komeil64
یک شنبه 15 بهمن 1385, 20:01 عصر
این کد رو هم که می نویسم دیتا ویو ارور میده و به هم می خوره:


<asp:TemplateField><ItemTemplate><asp:HyperLink Text='<%# Bind("name") %>' NavigateUrl='~/veiwbook.aspx?ID=<%# Bind("ID") %>'></asp:HyperLink></ItemTemplate></asp:TemplateField>

Alireza_Salehi
یک شنبه 15 بهمن 1385, 20:03 عصر
پست شماره 4 رو ادیت کردم ، بیشتر توضیح دادم.

komeil64
یک شنبه 15 بهمن 1385, 20:06 عصر
کد شما رو هم که می ذارم دوباره همون جمله باید رو نشون میده
Bind("ID") %

Alireza_Salehi
یک شنبه 15 بهمن 1385, 20:07 عصر
'<%# "~/veiwbook.aspx?ID=" + Eval("ID").ToString() %>'