PDA

View Full Version : چطوری ID کی هر رکورد رو در Gridveiw بدست بیازم؟



shahab_ksh
سه شنبه 08 اسفند 1385, 19:34 عصر
چطوری ID کی هر رکورد رو در Gridveiw بدست بیازم؟

یه گرید ویو به صفحه اضافه کردم

و بعد خاصیت DataKeyNames رو به گرید ویو اضافه کردم

DataKeyNames="CustomerID"

حالا می خام یه ستون که یه دکمه داره رو اضافه کنم مثلا دکمه Delete
حالا می خام هر وقت در هر ستونی رو این دکمه زدم CustomerID اون سطر از جدول رو بدست بیارم چطوری میشه؟

iman_22a
سه شنبه 08 اسفند 1385, 21:11 عصر
با Gridview.SelectedValue می توانید مقدار CustomerId را برگردانید چون این دستور مقدار انتخاب شده از هر سطر که DatakeyName برای آن تعریف شده باشد را برمی گرداند

shahab_ksh
سه شنبه 08 اسفند 1385, 21:45 عصر
تست کردم نشد !

یا شاید فقط در رویداد Select کار میکنه و در مثلا رویداد Delete کار نمیکنه

iman_22a
سه شنبه 08 اسفند 1385, 22:21 عصر
هم در Select هم در Delete باید کار بده ، من قبلا انجام دادم

shahab_ksh
سه شنبه 08 اسفند 1385, 22:43 عصر
این کد منه




<%@PageLanguage="VB" %>
<%@RegisterAssembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI"TagPrefix="asp" %>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<scriptrunat="server">
ProtectedSub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs)

EndSub

ProtectedSub GridView1_RowDeleted(ByVal sender AsObject, ByVal e As System.Web.UI.WebControls.GridViewDeletedEventArgs )
Label1.Text = GridView1.SelectedValue()

EndSub
</script>
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headid="Head1"runat="server">
<title>Untitled Page</title>
</head>
<body>
<formid="form1"runat="server">
<div>
<asp:ScriptManagerID="ScriptManager1"runat="server">
</asp:ScriptManager>
<br/>
<br/>
<asp:UpdatePanelID="UpdatePanel1"runat="server">
<ContentTemplate>
&nbsp;
</ContentTemplate>
</asp:UpdatePanel>
<br/>
<br/>
<br/>
&nbsp;
<asp:SqlDataSourceID="SqlDataSource1"runat="server"ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"DeleteCommand="DELETE FROM [Customer] WHERE [CustomerID] = @original_CustomerID AND [FirstName] = @original_FirstName AND [LastName] = @original_LastName AND [CustomerSince] = @original_CustomerSince AND [CreditLimit] = @original_CreditLimit"
InsertCommand="INSERT INTO [Customer] ([FirstName], [LastName], [CustomerSince], [CreditLimit]) VALUES (@FirstName, @LastName, @CustomerSince, @CreditLimit)"
SelectCommand="SELECT * FROM [Customer]"UpdateCommand="UPDATE [Customer] SET [FirstName] = @FirstName, [LastName] = @LastName, [CustomerSince] = @CustomerSince, [CreditLimit] = @CreditLimit WHERE [CustomerID] = @original_CustomerID AND [FirstName] = @original_FirstName AND [LastName] = @original_LastName AND [CustomerSince] = @original_CustomerSince AND [CreditLimit] = @original_CreditLimit">
<DeleteParameters>
<asp:ParameterName="original_CustomerID"Type="Int32"/>
<asp:ParameterName="original_FirstName"Type="String"/>
<asp:ParameterName="original_LastName"Type="String"/>
<asp:ParameterName="original_CustomerSince"Type="DateTime"/>
<asp:ParameterName="original_CreditLimit"Type="Decimal"/>
</DeleteParameters>
<UpdateParameters>
<asp:ParameterName="FirstName"Type="String"/>
<asp:ParameterName="LastName"Type="String"/>
<asp:ParameterName="CustomerSince"Type="DateTime"/>
<asp:ParameterName="CreditLimit"Type="Decimal"/>
<asp:ParameterName="original_CustomerID"Type="Int32"/>
<asp:ParameterName="original_FirstName"Type="String"/>
<asp:ParameterName="original_LastName"Type="String"/>
<asp:ParameterName="original_CustomerSince"Type="DateTime"/>
<asp:ParameterName="original_CreditLimit"Type="Decimal"/>
</UpdateParameters>
<InsertParameters>
<asp:ParameterName="FirstName"Type="String"/>
<asp:ParameterName="LastName"Type="String"/>
<asp:ParameterName="CustomerSince"Type="DateTime"/>
<asp:ParameterName="CreditLimit"Type="Decimal"/>
</InsertParameters>
</asp:SqlDataSource>
<br/>
<asp:LabelID="Label1"runat="server"Text="Label"></asp:Label>
<br/>

</div>
<asp:GridViewID="GridView1"runat="server"AllowPaging="True"AllowSorting="True"
AutoGenerateColumns="False"DataKeyNames="CustomerID"DataSourceID="SqlDataSource1"PageSize="5"OnRowDeleted="GridView1_RowDeleted">
<Columns>
<asp:CommandFieldShowDeleteButton="True"ShowEditButton="True"/>
<asp:BoundFieldDataField="FirstName"HeaderText="FirstName"SortExpression="FirstName"/>
<asp:BoundFieldDataField="LastName"HeaderText="LastName"SortExpression="LastName"/>
<asp:BoundFieldDataField="CustomerSince"HeaderText="CustomerSince"SortExpression="CustomerSince"/>
<asp:BoundFieldDataField="CreditLimit"HeaderText="CreditLimit"SortExpression="CreditLimit"/>
</Columns>
</asp:GridView>
</form>
</body>
</html>




البته این طوری جواب گرفتم این روش درسته ؟

Label1.Text = e.Keys(0)