PDA

View Full Version : سوال: انتقال id رکورد هایgridview بین صفحات در صورتی که خود id نمایش داده نشه



shocraneh
شنبه 28 آذر 1388, 20:08 عصر
انتقال id رکورد gridview به طوری که خود idدر ستون ها دیده نشه؟؟
اگه عضو ستون ها باشه کد زیر درسته اما من نمی خام hd رو نمایش بدم.visible=false رو هم امتحان کردم خطا می ده


Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged
Dim amlakCode As String
amlakCode = GridView1.SelectedRow.Cells(0).Text.ToString 'کد بنگاه
Response.Redirect("amlak.aspx?code=" + amlakCode)
End Sub

z_bluestar
یک شنبه 29 آذر 1388, 08:16 صبح
از این Property گرید برای بدست اوردن id سطر انتخاب شده استفاده کنید DataKeyNames="id"

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
String ID = GridView1.SelectedDataKey.Value.ToString();
}

shocraneh
یک شنبه 29 آذر 1388, 12:27 عصر
با تشکر .
من می خام یکی از ستونها به صورت لینک باشه و به صفحه دیگه منتقل بشه و جزئیات مربوط به رکورد رو نشون بده . دقیقا نمی دونم TemplateFieldمربوطه رو چی بنویسم . و DataKeyNames="id" رو نمی دونم کجا باید بنویسم .

raziee
یک شنبه 29 آذر 1388, 12:36 عصر
انتقال id رکورد gridview به طوری که خود idدر ستون ها دیده نشه؟؟
اگه عضو ستون ها باشه کد زیر درسته اما من نمی خام hd رو نمایش بدم.visible=false رو هم امتحان کردم خطا می ده


کد:
Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged
Dim amlakCode As String
amlakCode = GridView1.SelectedRow.Cells(0).Text.ToString 'کد بنگاه
Response.Redirect("amlak.aspx?code=" + amlakCode)
End Sub
کد شما در سمت سرور عملیات انتقال به صفحه دیگر رو انجام میده که نیازی به این کار نیست.
این کد رو جناب کرامتی در پستی نوشته بودند. نیاز به توضیح نداره.
<%@ Page Language="C#????" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestWebApplication._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<script type="text/javascript" language="javascript">
function openPopup(id) {
window.open('WebForm1.aspx?ID=' + id, '_blank','width=200 , height=300, toolbar=no');
}
</script>
<form id="form1" runat="server">

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID"
DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True"
SortExpression="ID" />
<asp:BoundField DataField="DisplayOrder" HeaderText="DisplayOrder" SortExpression="DisplayOrder" />
<asp:BoundField DataField="CategoryName" HeaderText="CategoryName" SortExpression="CategoryName" />
<asp:TemplateField HeaderText="Test">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server"
onclientclick='<%# "openPopup("+Eval("ID") +")" %>'>LinkButton</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</form>
</body>
</html>

z_bluestar
یک شنبه 29 آذر 1388, 13:32 عصر
یک روش اینه که ستون Select داشته باشی

مثل مثال زیر و پست قبلی که بهتون گفتم
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
AutoGenerateSelectButton="True" DataKeyNames="ProductID"
DataSourceID="SqlDataSource1"
onselectedindexchanged="GridView1_SelectedIndexChanged">
<Columns>
<asp:BoundField DataField="ProductTitle" HeaderText="ProductTitle"
ReadOnly="True" SortExpression="ProductTitle" />
<asp:BoundField DataField="ProductDesc" HeaderText="ProductDesc"
ReadOnly="True" SortExpression="ProductDesc" />
<asp:BoundField DataField="ProductInfo" HeaderText="ProductInfo"
ReadOnly="True" SortExpression="ProductInfo" />
<asp:BoundField DataField="ProductPrice" HeaderText="ProductPrice"
SortExpression="ProductPrice" />
<asp:CheckBoxField DataField="ProductAvailableInStock"
HeaderText="ProductAvailableInStock" SortExpression="ProductAvailableInStock" />
<asp:BoundField DataField="CategoryID" HeaderText="CategoryID"
SortExpression="CategoryID" />
<asp:BoundField DataField="ProductPicURL" HeaderText="ProductPicURL"
SortExpression="ProductPicURL" />

</Columns>
</asp:GridView>

با LinkButton هم می شه این کــار رو انجام داد ، اگه بگید این Id رو برای چی می خواهید راه درست تر رو میشه معرفی کرد . :چشمک:

shocraneh
یک شنبه 29 آذر 1388, 20:15 عصر
راهنمایی دوستمون z_bluestar جواب داد منتها من می خام حالت لینک داشته باشه .راستش نمی دونم در این حالت تو onclientclick چی بنویسم . ضمن این که می خام در صورتی که کاربر روی لینک کلیک کرد به صفحه جدید منتقل بشه نه با کلیک روی رکورد . در هر صورت ممنونم

دوست عزیز raziee کدتون خیلی جالبه منتها من تو Id,وID گم شدم .نمیدونم کدوم فیلد جدول و کدوم پارامتره .
لطفا راهنمایی کنید . برای نمونه فیلد جدول رو codestd و پارامتری که به صفحه منتقل میشه code بگیرید

Dim ss As String = Request("code")

z_bluestar
دوشنبه 30 آذر 1388, 08:19 صبح
<body>
<script type="text/javascript" language="javascript">
function openPopup(code) {
window.open('WebForm1.aspx?ID=' + code , '_blank','width=200 , height=300, toolbar=no');
}
</script>
<form id="form2" runat="server">

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID"
DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="codestd " HeaderText="codestd " InsertVisible="False" ReadOnly="True"
SortExpression="codestd " />
<asp:BoundField DataField="DisplayOrder" HeaderText="DisplayOrder" SortExpression="DisplayOrder" />
<asp:BoundField DataField="CategoryName" HeaderText="CategoryName" SortExpression="CategoryName" />
<asp:TemplateField HeaderText="Test">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server"
onclientclick='<%# "openPopup("+Eval("codestd") +")" %>'>LinkButton</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</form>
</body>

shocraneh
دوشنبه 07 دی 1388, 20:23 عصر
برای اینکه بخام در حین انجام عمل بالا (البته با تغییرات جزئی درست شد )علاوه بر آدی ارسال شده به صفحه بعد ،دو مقدار دیگه رو هم بفرستم چی کار باید کرد ؟ مانند حالت viewstate.
دلیل : دوباره به پایگاه مراجعه نکنم .
کد من

<asp:TemplateField HeaderText="جزئیات">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server"
NavigateUrl='<%# Eval(" code", "~/Details.aspx?id={0}") %>' Target="_blank"
Text="جزئیات" ToolTip="برای مشاهده جزئیات اینجا کلیک کنید"></asp:HyperLink>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" Width="5%" />
</asp:TemplateField>


نوشتن صفر در
~/Details.aspx?id={0}خیلی ذهنمو مشغول کرده

raziee
دوشنبه 07 دی 1388, 23:02 عصر
دوست عزیز raziee کدتون خیلی جالبه منتها من تو Id,وID گم شدم .نمیدونم کدوم فیلد جدول و کدوم پارامتره
ID کلید رکرود هست که از بانک میگیره.
id: همون مقدار ID هست منتها به کد جاوا فرستاده میشه.
openPopup("+Eval("ID") +")" رو به ابن تغییر بده:

openPopup("+Eval("ID") + "," + Eval("Name") + ")"


, strname function openPopup(code) {
window.open('WebForm1.aspx?ID=' + code + '&Name=' + str Name + , '_blank','width=200 , height=300, toolbar=no');

shocraneh
سه شنبه 08 دی 1388, 04:46 صبح
دوست من مثل اینکه متوجه سوال من نشدید . مواردی رو که اشاره کردید من قبلا بهش رسیدم . سوال الانم با سوالی که قبلا تو این تاپیک دنبال میشد فرق داره .
سوال : در اینجا یک مقدار به صفحه بعد پاس داده میشه . من می خام ببینم میشه علاوه بر اون ،یه مقدار دیگه رو هم بتونم پاس بدم . (صرفا حالت viewstate رو برام بازی کنه و نمی خام تو سرچ ازش استفاده کنم