PDA

View Full Version : اتصال دو Grid View به هم



abretireh
جمعه 21 بهمن 1390, 17:52 عصر
سلام
دو تا grid view دارم که در grid view1 نام محصولات هست و در grid view2 توضیحات در مورد محصول از جمله قیمت و ....
می خوام وقتی در grid view 1 نام محصول انتخاب شد در grid view 2 مشخصات محصول ظاهر بشه به چه صورت امکان پذیر هست که دو تا grid view ها در ارتباط باشن با هم ؟
ممنون

fakhravari
جمعه 21 بهمن 1390, 18:22 عصر
میتونید از 2 تا دیتاسورس استفاده کنید که یه یک گرید امکان Select بزارید که بعد از انتخاب دیتاسورس گرید 2 را در خاصیت where ان بزارید روی query string

abretireh
جمعه 21 بهمن 1390, 18:31 عصر
میتونید از 2 تا دیتاسورس استفاده کنید که یه یک گرید امکان Select بزارید که بعد از انتخاب دیتاسورس گرید 2 را در خاصیت where ان بزارید روی query string
دو تا sql data source گذاشتم
میشه کامل تر توضیح بدین

Naranj
جمعه 21 بهمن 1390, 19:24 عصر
وقتی شما می خواهید یک مقدار را جایی نمایش دهید روش مناسبی نیست که از gridview استفاده کنید
مثلا شما می تونید برای نمایش قیمت و توضیحات محصول اونا رو توی کنترل label نمایش بدید و نیازی نیست از گرید ویو استفاده کنید

fakhravari
جمعه 21 بهمن 1390, 20:01 عصر
یه مثال
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
CellPadding="4" DataKeyNames="CategoryID"
EmptyDataText="There are no data records to display."
EnableModelValidation="True" ForeColor="#333333" GridLines="None"
Width="498px">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:BoundField DataField="CategoryID" HeaderText="CategoryID" ReadOnly="True"
SortExpression="CategoryID" />
<asp:BoundField DataField="CategoryName" HeaderText="CategoryName"
SortExpression="CategoryName" />
<asp:HyperLinkField DataNavigateUrlFields="CategoryID"
DataNavigateUrlFormatString="?CategoryID={0}" HeaderText="انتخاب"
Text="انتخاب" />
</Columns>
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
<RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
</asp:GridView>
<br />
<hr /><br />
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"
DataKeyNames="ForumID" DataSourceID="SqlDataSource2"
EmptyDataText="There are no data records to display."
EnableModelValidation="True">
<Columns>
<asp:BoundField DataField="ForumID" HeaderText="ForumID" ReadOnly="True"
SortExpression="ForumID" InsertVisible="False" />
<asp:BoundField DataField="CategoryID" HeaderText="CategoryID"
SortExpression="CategoryID" />
<asp:BoundField DataField="ForumName" HeaderText="ForumName"
SortExpression="ForumName" />
<asp:BoundField DataField="ForumDescription" HeaderText="ForumDescription"
SortExpression="ForumDescription" />
<asp:BoundField DataField="ForumPosition" HeaderText="ForumPosition"
SortExpression="ForumPosition" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectSring1 %>"
ProviderName="<%$ ConnectionStrings:ConnectSring1.ProviderName %>"
SelectCommand="SELECT * FROM [F_Forums] WHERE ([CategoryID] = @CategoryID)"
ConflictDetection="CompareAllValues"
OldValuesParameterFormatString="original_{0}">

<SelectParameters>
<asp:QueryStringParameter DefaultValue="1" Name="CategoryID"
QueryStringField="CategoryID" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>



گرید 1 دارای یک HyperLinkField است که بعد از انتخاب مقدار id محصول را پاس میده به همان صفحه ?CategoryID={0}
و گرید 2 هم دیتاسورس جوری گرفتیم که QueryStringParameter اگر مقداری پاس داده شد نمایش بده