PDA

View Full Version : سوال در مورد Data Grid و انتقال مقادیر در فرمها



arshia_
دوشنبه 07 اردیبهشت 1383, 19:19 عصر
با سلام و خسته نباشید

اطلاعات جدولی که چهار کلید اصلی دارد را در یک Data grid نمایش داده ام حال می خواهم با کلید بر روی یک سطر Data grid اطلاعات مربوط به آن سطر در یکwebform دیگر نشان دهم. مقدار data file key بابد برابر با کدامیک از کلیدهای اصلی باشد؟!
کلیدهای اصلی جدول m,L1,L2,c است که مقدار m,L1,L2 از جدولی دیگر بوسیله Relation به این جدول ارسال می شود.

با سپاس

MFCGalaxy
دوشنبه 07 اردیبهشت 1383, 21:55 عصر
نظر من اینه :
برابر با هرچهار تا !
وبرای اینکار آنها را به کمک Semicolon از هم جدا میکنیم که بتوانیم هرچهارتا را بنویسیم .........


در حاشیه .... عجب چیزی بوده که چهار تا کلید اصلی داشته . :shock:

arshia_
سه شنبه 08 اردیبهشت 1383, 18:59 عصر
ممنون از پاسختون ولی اجرا نشد :?

SoheilKH
سه شنبه 08 اردیبهشت 1383, 19:38 عصر
با سلام

وبرای اینکار آنها را به کمک Semicolon از هم جدا میکنیم که بتوانیم هرچهارتا را بنویسیم .........

کاملا موافقم.فکر کنم با توجه به ساختار دیتا بیس ت راه دیگه ای نداشته باشی.
اما راجع به اجرا نشدن!!

آیا توی استور پروسیجر یا کوئری تان (که قراره اطلاعاتش توی یک webform نمایش داده بشه) هر چهار فیلد را فیلتر کرده اید.؟
آیا مقادیر فیلتر شونده همان مقادیری هستند که از split کردن رشته ای که به دیتا گریدت bound کرده ای هستند!

arshia_
چهارشنبه 09 اردیبهشت 1383, 09:55 صبح
سلام , دوست عزیز ممنون از اینکه جواب ما رو دادید ولی ....
بیبین من مقداری از سورس برنامه که نمیتونه بایند بشه رو برات میفرسم لطف کن یه نگاهی بنداز اگر چیزی دستگیرت شد حتما برام بفرست :oops: :oops:
راستی در datakeyfield هر چهار کلید رو تعریف کردم ولی نشد

SoheilKH
چهارشنبه 09 اردیبهشت 1383, 22:10 عصر
سلام

کد صفحه aspx

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="WebApplication1.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body >
<form id="Form1" method="post" runat="server">
<asp:datagrid id="grdFullSales" runat="server" EnableViewState="False" AutoGenerateColumns="False"
width="100%" CellPadding="3" >
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<table align="right">
<tr>
<td width="300"><%# DataBinder.Eval(Container, "DataItem.ProductName") %>
</td>
<td width="100"><a style="VERTICAL-ALIGN: super" href='<%# UrlView(DataBinder.Eval(Container.DataItem,"ProductID"),DataBinder.Eval(Container.DataItem,"ProductID"),DataBinder.Eval(Container.DataItem,"ProductID")) %>'>
اسم لینک </a>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
</form>
</body>
</HTML>


و Codebehind


Imports System.Data.SqlClient
Public Class WebForm1
Inherits System.Web.UI.Page

#Region " Web Form Designer Generated Code "

'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

End Sub
Protected WithEvents grdFullSales As System.Web.UI.WebControls.DataGrid

'NOTE: The following placeholder declaration is required by the Web Form Designer.
'Do not delete or move it.
Private designerPlaceholderDeclaration As System.Object

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub

#End Region

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim MyConn As New SqlConnection("server=soheil;database=GreenAccounting;Integrated Security=SSPI")
Dim Cmd As New SqlCommand("GetlistProduct", MyConn)
Dim Dr As SqlDataReader
Dim Result As Integer
Cmd.CommandType = CommandType.StoredProcedure
Cmd.Connection.Open()
Dr = Cmd.ExecuteReader(CommandBehavior.CloseConnection)
grdFullSales.DataSource = Dr
grdFullSales.DataBind()
End Sub
Public Function UrlView(ByVal strKeyValue As String, ByVal strKeyValue1 As String, ByVal strKeyValue2 As String)
UrlView = "&ProductId=" & strKeyValue & ";" & strKeyValue1 & ";" & strKeyValue2
End Function
End Class


اصل کاری، اون تابع urlview است!

موفق باشید

arshia_
شنبه 12 اردیبهشت 1383, 20:06 عصر
سلام
ممکنه در مورد این دو قسمت توضیح بیشتری بدبد :oops:

</td>
<td width="100"><a style="VERTICAL-ALIGN: super" href='<%# UrlView(DataBinder.Eval(Container.DataItem,"ProductID"),DataBinder.Eval(Container.DataItem,"ProductID"),DataBinder.Eval(Container.DataItem,"ProductID")) %>'>
اسم لینک </a>
&lt;/td>

Cmd.CommandType = CommandType.StoredProcedure

SoheilKH
شنبه 12 اردیبهشت 1383, 23:51 عصر
قسمت اول:
ما یک تابع UrlView داریم که کارش کنار هم قرار دادن پارامترهای وردوی اش به همراه سیمیکالن ";" است.
مثلا 1 2 4 5 ---------------> 1;2;4;5
البته شما باید این تابع را برای خودت Customize بکنی یعنی توی بدنه تابع مذکور با یک ادرس(ادرس همان صفحه ای که می خواهی مشخصات جدول 4 کلیدت را نمایش بدی) الحاق بکنی.و اینکه یک پارامتر هم به رشته ی سیمیکالن دارت نسبت بدهی
مثلا

Public Function UrlView&#40;ByVal strKeyValue As String, ByVal strKeyValue1 As String, ByVal strKeyValue2 As String&#41;
UrlView ="AddressPage.aspx?" "Parametr=" & strKeyValue & ";" & strKeyValue1 & ";" & strKeyValue2
End Function

قسمت دوم
بانک من SqlServer است
در دات نت به چند طریق می توان از بانک Sql Server اطلاعات را خواند. یکی از این روش ها store produre است . من هم در قسمتی که شما مشخص کرده اید. نوع خواندم از بانک ام را مشخص کرده ام !

موفق باشید