PDA

View Full Version : حرفه ای: ارسال همزمان پارامتر از گرید ویو وquery string به صفحه دیگر



salmah
یک شنبه 16 آذر 1393, 22:13 عصر
126370

با سلام
من میخوام وقتی کاربر بر روی هایپر لینک کلیک کرد و به صفحه srchcod.aspx رفت مقداری را که در query string نمایش داده شده را هم به صورت query string به صفحه دیگه پاس بده

در واقع منظورم اینه که چه جوری هم مقدار cp,rod,kod را با هم به صفحه دیگه برفستم

LostOfMind
یک شنبه 16 آذر 1393, 22:58 عصر
از تمپلیت فیلد گرید ویو استفاده کنید و یه هایپر لینک داخلش بذارید مانند زیر


<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server">HyperLink</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>


از قسمت رویداد گریدویو بر روی RowDataBound دوبار کلیک کنید و کد زیر را بنویسید

GridViewRow row = e.Row;
if (row.DataItem == null)
return;
HyperLink HyperLink1 = (HyperLink)row.FindControl("HyperLink1");
string Query = string.Format(@"~/PageName.aspx?cp={0}&rod={1}&kod={2}", "cp", "rod", "kod");
HyperLink1.NavigateUrl = Query;

و به جای مقادیر cp ,rod,kod مقادیر خودتون رو جایگزین کنید

salmah
یک شنبه 16 آذر 1393, 23:15 عصر
از تمپلیت فیلد گرید ویو استفاده کنید و یه هایپر لینک داخلش بذارید مانند زیر

و به جای مقادیر cp ,rod,kod مقادیر خودتون رو جایگزین کنید
ببخشید چه جوری
مقدار کوئری استرینگ را به جای "kod" بنویسم یا مقدار rid","cp"" که توی گرید نمایش داده شده را جایگزین کنم

LostOfMind
دوشنبه 17 آذر 1393, 09:23 صبح
بر فرض اینکه شما از صفحه قبل با رشته کوئری استرینگ kod وارد صفحه فعلی شده اید کد زیر را بنویسید :

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound" Width="50%" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black" GridLines="Horizontal">
<Columns>
<asp:TemplateField HeaderText="cp">
<ItemTemplate>
<asp:Label ID="lblCP" runat="server" Text="2356"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="rid">
<ItemTemplate>
<asp:Label ID="lblRIP" runat="server" Text="258749"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server">HyperLink</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#CCCC99" ForeColor="Black" />
<HeaderStyle BackColor="#333333" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="Black" HorizontalAlign="Right" />
<SelectedRowStyle BackColor="#CC3333" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#F7F7F7" />
<SortedAscendingHeaderStyle BackColor="#4B4B4B" />
<SortedDescendingCellStyle BackColor="#E5E5E5" />
<SortedDescendingHeaderStyle BackColor="#242121" />
</asp:GridView>
و در رویداد RowDataBound گرید ویو کد زیر را بنویسید:
GridViewRow row = e.Row;
if (row.DataItem == null)
return;
HyperLink HyperLink1 = (HyperLink)row.FindControl("HyperLink1");
Label lblCP = (Label)row.FindControl("lblCP");
Label lblRIP = (Label)row.FindControl("lblRIP");
if (Request.QueryString["kod"] != null)
HyperLink1.NavigateUrl = string.Format(@"PageName.aspx?kod={0}&cp={1}&rip={2}", Request.QueryString["kod"].ToString(), lblCP.Text, lblRIP.Text);

salmah
دوشنبه 17 آذر 1393, 10:23 صبح
با تشکر فراوان
اشکالی که الان دارم این هست که تا زمانی که hyperlink به ستونی از گرید ویو bind نشده باشه غیر فعال هست

LostOfMind
دوشنبه 17 آذر 1393, 10:43 صبح
منظور شما متوجه نشدم!!!
شما باید اول مقادیر گرید ویو رو از بانک اطلاعاتی دریافت کنید

salmah
دوشنبه 17 آذر 1393, 13:36 عصر
پروژه را از اول ساختم درست شد