PDA

View Full Version : حرفه ای: مشکلات قراردادن grid view در update panel



m_kalantar.cs
جمعه 20 آذر 1388, 12:04 عصر
درود به همه بزرگان
آیا قرار دادن کامل کنترل gridview در update panel مشکلی دارد .
لطفا" دلایل تان را هم ذکر بفرمائید.
پیشاپیش سپاسگذارم

raziee
جمعه 20 آذر 1388, 21:57 عصر
گریدویو ، ویو استیت زیادی تولید میکنه. آپدیت پنل هم همینطور.
برای همین این دو رو با هم استفاده نمیکنند(یا شاید بهتره که استفاده نکنند)

mohsen_zelzela00
جمعه 20 آذر 1388, 23:16 عصر
گریدویو ، ویو استیت زیادی تولید میکنه. آپدیت پنل هم همینطور.
برای همین این دو رو با هم استفاده نمیکنند(یا شاید بهتره که استفاده نکنند)
با سلام

یعنی اینکه gridview را درونupdatepanel استفاده نکنیم؟؟؟؟؟؟؟؟؟
من یک grid طراحی کردم که درون آن grid عمل حذف انجام میشه نمی خوام هنگام حذف post back اتفاق بیفته پس به نظر شما من از چه کنترل (هایی) استفاده کنم ؟؟ ممنون میشم جواب بدید خیلی مهم است

raziee
شنبه 21 آذر 1388, 09:15 صبح
ببینید بحث انتقال اطلاعات بین کلاینت و سرور بوسیله ی ایجکس زمانی مطرح میشه که حجم اطلاعاتی که باید بین سرور و کلاینت در پست بک ، جابجا بشه کم باشه.
وقتی که این حجم بالا بره و حجم زیادی از صفحه به سمت سرور بره عملا به جایی که افزایش سرعت رو داشته باشیم ، کاهش سرعت رو داریم.

حالا ممکنه این گرید شما که در Updatepanel هست نهایتا 5 رکورد داشته باشه. خوب شاید حجم زیادی جابجا نشه. اما اگه گریدویو 100 رکورد داشته باشه چی؟
اونوقت فکر نمیکنید که برای انتقال فقط یک ID به سمت سرور دارین این همه اطلاعات رو جابجا میکنید؟

حالا اگه خودتون کمی جاوا اسگریپت بلد باشید میتونید فقط همون یک ID رو بفرستید و در سرور عمل حذف رو انجام بدید .
شاد باشید

m_kalantar.cs
شنبه 21 آذر 1388, 09:20 صبح
جناب raziee خیلی سپاسگذارم میشه درمورد ارسال اون ID با جاوا اسکریپت یکمی توضیح بدبد

m_kalantar.cs
شنبه 21 آذر 1388, 09:47 صبح
اگه من در صفحه ام دو تا grid view داشته باشم که محتویات gridview دومی را بر حسب سطر انتخاب شده از grid view اولی نمایش بدهد .دراین صورت اگه نخواهم آن ها را درون update panel بگذارم خیلی بد میشود.
چه را حلی را پیشنهاد میکنید
برای مثال در grid view اول گروه مقالات را قرار دادم که بوسیله ID اون گروه مقاله مرتبط را در grid view دومی که جدولی جداگانه از جدول گروه ها است میخواهم نمایش دهم
با سپاس فراوان

raziee
شنبه 21 آذر 1388, 10:14 صبح
نمونه ی زیر رو ببینید.
نمونه ای از فصل دوم کتاب Professional ASP.NET 3.5 In C#‎‎‎‎‎‎ and VB by Bill Evjen , Scott Hanselman , Devin Rader هست.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CustomerDetails.aspx.cs" Inherits="F2_CustomerDetails" %>

<!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>Customer Details</title>
<script type="text/javascript">
function GetCustomer(){
state.innerHTML="<b>Loading...</b> Please wait.";
var customerCode = document.forms[0].TextBox1.value;
UseCallback(customerCode, "");
}
function GetCustDetailsFromServer(result, context){
state.innerHTML="Complated.";
var i = result.split("|");
customerID.innerHTML = i[0];
companyName.innerHTML = i[1];
contactName.innerHTML = i[2];
contactTitle.innerHTML = i[3];
address.innerHTML = i[4];
city.innerHTML = i[5];
region.innerHTML = i[6];
postalCode.innerHTML = i[7];
country.innerHTML = i[8];
phone.innerHTML = i[9];
fax.innerHTML = i[10];
namefamily.innerHTML = i[11];
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>&nbsp;
<input id="Button1" type="button" value="Get Customer Details"
onclick="GetCustomer()" /><br />
<br />
<span id="state"></span>
<br />
<table cellspacing="0" cellpadding="4" rules="all" border="1"
id="DetailsView1"
style="background-color:White;border-color:#3366CC;border-width:1px;
border-style:None;height:50px;width:400px;border-collapse:collapse;">
<tr style="color:#003399;background-color:White;">
<td>CustomerID</td><td><span id="customerID" /></td>
</tr><tr style="color:#003399;background-color:White;">
<td>CompanyName</td><td><span id="companyName" /></td>
</tr><tr style="color:#003399;background-color:White;">
<td>ContactName</td><td><span id="contactName" /></td>
</tr><tr style="color:#003399;background-color:White;">
<td>ContactTitle</td><td><span id="contactTitle" /></td>
</tr><tr style="color:#003399;background-color:White;">
<td>Address</td><td><span id="address" /></td>
</tr><tr style="color:#003399;background-color:White;">
<td>City</td><td><span id="city" /></td>
</tr><tr style="color:#003399;background-color:White;">
<td>Region</td><td><span id="region" /></td>
</tr><tr style="color:#003399;background-color:White;">
<td>PostalCode</td><td><span id="postalCode" /></td>
</tr><tr style="color:#003399;background-color:White;">
<td>Country</td><td><span id="country" /></td>
</tr><tr style="color:#003399;background-color:White;">
<td>Phone</td><td><span id="phone" /></td>
</tr><tr style="color:#003399;background-color:White;">
<td>Fax</td><td><span id="fax" /></td>
</tr><tr style="color:#003399;background-color:White;">
<td>Name</td><td><span id="namefamily" /></td></tr>
</table>
</div>
</form>
</body>
</html>

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class F2_CustomerDetails : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
{
private string _callbackResult = null;
protected void Page_Load(object sender, EventArgs e)
{
string cbReference = Page.ClientScript.GetCallbackEventReference(this,
"arg", "GetCustDetailsFromServer", "context");
string cbScript = "function UseCallback(arg, context)" +
"{" + cbReference + ";" + "}";
Page.ClientScript.RegisterClientScriptBlock(this.G etType(),
"UseCallback", cbScript, true);
}

#region ICallbackEventHandler Members
public string GetCallbackResult()
{
return _callbackResult;
}
public void RaiseCallbackEvent(string eventArgument)
{
System.Threading.Thread.Sleep(3000);
string[] MyValues = new string[12];

MyValues[0] = eventArgument;
MyValues[1] = "Arya Co";
MyValues[2] = "raziee.hossein@gmail.com";
MyValues[3] = "ContactTitle";
MyValues[4] = "Iran,Tehran";
MyValues[5] = "Tahran";
MyValues[6] = "Region";
MyValues[7] = "PostalCode";
MyValues[8] = "Iran";
MyValues[9] = "09122222222";
MyValues[10] = "33333333";
MyValues[11] = "Hossein Raziee";

_callbackResult = String.Join("|", MyValues);
}
#endregion
}

کارش اینه که یه آدی رو بدون پست بک شده به سمت سرور میفرسته و یک مجموعه ی اطلاعات رو از سرور میگیره و نمایش میده.

در صورت امکان کتاب مذکور رو مطالعه بفرمایید
شاد باشید

afkariaus
پنج شنبه 10 دی 1388, 07:22 صبح
خب اگه قرار باشه از gridview در update panel به خاطر ایجاد view state های زیاد استفاده نکنیم و جدولی با مثلا 1000 رکورد داشته باشیم که به طور مداوم عمل حذف و یا ویرایش را بخواهیم روی اون اعمال کنیم چه راه حلی پیشنهاد میکنید؟؟؟

raziee
پنج شنبه 10 دی 1388, 10:46 صبح
خب اگه قرار باشه از gridview در update panel به خاطر ایجاد view state های زیاد استفاده نکنیم و جدولی با مثلا 1000 رکورد داشته باشیم که به طور مداوم عمل حذف و یا ویرایش را بخواهیم روی اون اعمال کنیم چه راه حلی پیشنهاد میکنید؟؟؟

استفاده از جاوا اسکریپت و انتقال مقادیر به سرور و ...
میتونید به مقاله ای که جناب راد با عنوان " ایجکس را بدون ایجکس تجربه کنید" مراجعه کنید.
یه جستجو کنید.

afkariaus
پنج شنبه 10 دی 1388, 12:11 عصر
اگر ممکنه لینک مقاله رو واسم بذارید ممنون میشم

mohsen_zelzela00
پنج شنبه 10 دی 1388, 21:21 عصر
اگر ممکنه لینک مقاله رو واسم بذارید ممنون میشم

دوست عزیز می تونید مقاله استاد راد رو در آدرس زیر ببینید
http://barnamenevis.org/forum/showthread.php?t=52380