PDA

View Full Version : سوال: چگونه در GridView وارد جزئیات یک سطر انتخابی بشوم؟



yasi1992
شنبه 05 دی 1394, 19:27 عصر
با سلام خدمت دوستان
من خیلی وقته که تو سایتای مختلف دنبال پیدا کردن جواب این سوالم بودم اما چیزی پیدا نکردم.
من اطلاعات جدول Bookام رو داخل گرید انداختم و فقط بعضی از فیلدهارو نمایش دادم.
سوالم اینه که چطور میشه با کلیک روی گزینه ی مشاهده( که HyperLinkField هست) وارد اطلاعات ردیف انتخابی بشم و اطلاعات کتاب که شامل(نام کتاب، سرشناسه، شابک... و تصویر کتاب ) هست رو نمایش بدم؟
اینم سورس کدمه:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="VBook.aspx.cs" Inherits="VBook" %>


<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
کتاب ها
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder3" Runat="Server">
<br />
<br />


<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="3" DataSourceID="dsBook" Height="249px" Width="363px" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
<Columns>
<asp:BoundField DataField="BookName" HeaderText="نام کتاب" SortExpression="BookName" />
<asp:BoundField DataField="UserName" HeaderText="نويسنده" SortExpression="UserName" />
<asp:BoundField DataField="Publisher" HeaderText="ناشر" SortExpression="Publisher" />
<asp:BoundField DataField="EditorName" HeaderText="ويراستار" SortExpression="EditorName" />
<asp:BoundField DataField="NameYear" HeaderText="سال" SortExpression="NameYear" />
<asp:HyperLinkField HeaderText="جزئيات" Text="مشاهده" />
</Columns>
<FooterStyle BackColor="White" ForeColor="#000066" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<RowStyle ForeColor="#000066" />
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#F1F1F1" />
<SortedAscendingHeaderStyle BackColor="#007DBB" />
<SortedDescendingCellStyle BackColor="#CAC9C9" />
<SortedDescendingHeaderStyle BackColor="#00547E" />
</asp:GridView>
<asp:SqlDataSource ID="dsBook" runat="server" ConnectionString="<%$ ConnectionStrings:NMDBConnectionString %>" SelectCommand="SELECT Tbl_Writer.UserName, Tbl_Year.NameYear, Tbl_Book.BookName, Tbl_Book.Publisher, Tbl_Book.EditorName FROM Tbl_Book INNER JOIN Tbl_Writer ON Tbl_Book.IdWriter = Tbl_Writer.IdWriter INNER JOIN Tbl_Year ON Tbl_Book.IdYear = Tbl_Year.IdYear"></asp:SqlDataSource>


</asp:Content>

و

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


public partial class VBook : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{


}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{


}
}

mohsen.nsb44
شنبه 05 دی 1394, 20:03 عصر
منم دنبال چنین چیزی میگردم
در گریدویو در تمپلیت یکسری اطلاعات رو نشون میدم
و یک لینک باتن دارم که عنوان رو نشون میده
میخوام وقتی روی اون لینک باتن کلیک کردم عنوان منو در یک لیبل نمایش بده
با استفاده از find control این کارو میتونم انجام بدم اما نمیتونم سطر کلیک شده گریدویو رو بدست بیارم
لطفا راهنمایی بکنید
کدمو قرار میدم


string selectedValue = ((LinkButton)GridView1.Rows[2].FindControl("LinkButton2")).Text;
Label6.Text = selectedValue;



بجای عدد 2 میخوام سطر انتخابی ایدیش نوشته بشه

mhi.iranmanesh
دوشنبه 07 اسفند 1396, 19:18 عصر
سلام
توی گرید ویو می تونید یه ButtonField استفاده کنید
<asp:GridView runat="server" ID="GRVpostCardList" AutoGenerateColumns="false" OnRowDataBound="GRVpostCardList_RowDataBound"
OnRowCommand="GRVpostCardList_RowCommand" " >

<Columns>
<asp:ButtonField ButtonType="Image" HeaderStyle-Width="150px" ItemStyle-Height="10" ItemStyle-HorizontalAlign="Center"
FooterStyle-HorizontalAlign="Left" CommandName="PrintPostCard" HeaderText="چاپ و نمایش لوحه" ImageUrl="../Images/Prin-list2.png" />
</Columns>

بعد توی رویداد RowCommand گریدویو این کد رو بنویسید:

selectedValue= GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[0].Text;

masoudsalahi
چهارشنبه 09 اسفند 1396, 19:55 عصر
سوال خوبی بود
منم دنبال جوابم ی گرید ویو دارم ک می خوام وقتی رو لینک نمایش بیشتر کلیک شد تمام فیلد ها نمایش داده بشه تو دیتا لیست براحتی میشه لینک ادامه مطلب اضافه کرد
ولی تو گرید ویو همون کد جواب نمیده ارور میده