ASP.NET گرڈ تلاش اور انتخاب میں صارف کے تجربے کو بہتر بنانا
صارفین کو گرڈ انٹرفیس کے اندر اشیاء کو تلاش کرنے اور منتخب کرنے کی صلاحیت فراہم کرنا ASP.NET ایپلی کیشنز میں ایک متواتر خصوصیت ہے۔ تاہم، ڈویلپرز کو اکثر ایک مسئلہ کا سامنا کرنا پڑتا ہے: جب کسی آئٹم کو منتخب کیا جاتا ہے تو گرڈ ریفریش ہو جاتا ہے اور تلاش کے پیرامیٹرز ضائع ہو جاتے ہیں۔ کیونکہ جب بھی وہ کوئی نیا آئٹم منتخب کرتے ہیں تو انہیں اپنی تلاش کو دوبارہ شروع کرنا پڑتا ہے، اس سے صارفین پریشان ہو سکتے ہیں۔
استعمال کو بہتر بنانے کے لیے پوسٹ بیک یا گرڈ اپ ڈیٹ کے بعد تلاش کے معیار کو محفوظ رکھنا ضروری ہے۔ یہ خاص طور پر اہم ہے جب صارفین کو ایک ہی معیار کی بنیاد پر کئی اختیارات کا انتخاب کرنا پڑتا ہے۔ اگر تلاش کی اصطلاحات گم ہو جائیں تو عمل کو بلا ضرورت دہرایا جاتا ہے۔
خوش قسمتی سے، ہم JavaScript اور ASP.NET کی بلٹ ان خصوصیات کو استعمال کر کے گرڈ میں کسی آئٹم کو چننے کے بعد بھی تلاش کے مطلوبہ الفاظ کو جاری رکھنے کو یقینی بنا سکتے ہیں۔ ڈیٹا ٹیبلز اور ASP.NET کی ویو سٹیٹ کو مکمل کرنے والے طریقوں کے استعمال کے ذریعے، ہم صارف کے تجربے کو مزید ہموار بنا سکتے ہیں۔
ہم مندرجہ ذیل گائیڈ میں دیکھیں گے کہ ASP.NET پروجیکٹ میں اسے حاصل کرنے کے لیے JavaScript اور VB.Net کا استعمال کیسے کیا جائے۔ ہم آپ کو یہ دکھانے کے لیے ایک حقیقی دنیا کے منظر نامے سے بھی گزریں گے کہ آپ اپنے گرڈ کو اپ ڈیٹ کرتے وقت تلاش کے معیار کو مؤثر طریقے سے کیسے برقرار رکھ سکتے ہیں۔
حکم | استعمال کی مثال |
---|---|
sessionStorage.getItem() | تلاش کے پیرامیٹرز کو براؤزر کے سیشن اسٹوریج سے اس کمانڈ کے ساتھ بازیافت کیا جا سکتا ہے۔ اس مثال میں، یہ تلاش کی قیمت کو بازیافت کرتا ہے جو پہلے فراہم کی گئی تھی اور اس بات کو یقینی بناتی ہے کہ صفحہ کی تازہ کاری یا گرڈ اپ ڈیٹ کے بعد تلاش کا میدان دوبارہ بھر گیا ہے۔ |
sessionStorage.setItem() | براؤزر کے سیشن اسٹوریج میں موجودہ تلاش کے سوال کو محفوظ کرتا ہے۔ یہ تلاش کے پیرامیٹرز کو اس صورت میں ضائع ہونے سے روکتا ہے جب صارف کسی آئٹم کو چنتا ہے یا ASP.NET گرڈ پوسٹس واپس کرتا ہے۔ |
ScriptManager.RegisterStartupScript() | سرور سے ASP.NET کلائنٹ سائڈ اسکرپٹ کو رجسٹر اور چلاتا ہے۔ تلاش کی قدر کو گرڈ کے سرچ باکس میں محفوظ کرنے کے لیے، اسے صفحہ لوڈ کرنے پر یا پوسٹ بیک کے بعد ذخیرہ شدہ تلاش کے معیار کو لاگو کرنے کے لیے استعمال کیا جاتا ہے۔ |
DataTable().search() | اپ ڈیٹ یا صفحہ لوڈ ہونے کے بعد، ڈیٹا ٹیبلز کے اس طریقے کا استعمال کرتے ہوئے کیش شدہ سرچ ویلیو کو گرڈ پر واپس لاگو کیا جاتا ہے۔ یہ اس بات کی ضمانت دیتا ہے کہ گرڈ کو تلاش کے استفسار کے مطابق فلٹر کیا گیا ہے جو پہلے ان پٹ تھا۔ |
DataTable().draw() | تلاش کے معیار کو لاگو کرتا ہے اور ڈیٹا ٹیبل کو دوبارہ بناتا ہے۔ جب صفحہ AJAX یا کسی اور تکنیک کا استعمال کرتے ہوئے تازہ یا اپ ڈیٹ کیا جاتا ہے، تو تلاش کی اصطلاحات کو دوبارہ لاگو کرنے اور فلٹر شدہ ڈیٹا دکھانے کے لیے اس کمانڈ کی ضرورت ہوتی ہے۔ |
on('keyup') | سرچ ان پٹ باکس میں ایک ایونٹ ہینڈلر شامل کرتا ہے تاکہ ہر کی اسٹروک کو ریکارڈ کیا جائے۔ اس مثال میں، یہ یقینی بناتا ہے کہ تلاش کی قدر برقرار رہے یہاں تک کہ اگر گرڈ ریفریش ہو یا موجودہ سرچ ان پٹ کے ساتھ سیشن اسٹوریج کو اپ ڈیٹ کر کے دوبارہ لوڈ کیا جائے۔ |
__doPostBack() | یہ ASP.NET فنکشن پوسٹ بیک شروع کرنے کے لیے JavaScript کا استعمال کرکے سرور کو ڈیٹا واپس بھیجتا ہے۔ جب گرڈ میں کسی آئٹم کو منتخب کیا جاتا ہے، تو اسکرپٹ کا استعمال موجودہ سرچ ویلیو کو سرور تک پہنچانے کے لیے کیا جاتا ہے، اس بات کی ضمانت دیتا ہے کہ سرور کے اطراف کے عمل کے دوران تلاش کی حالت برقرار ہے۔ |
$.ajax() | سرور کو ایک غیر مطابقت پذیر HTTP درخواست بھیجتا ہے۔ اس صورت میں، یہ پورے صفحے کو دوبارہ لوڈ کیے بغیر تلاش کے معیار کو سرور کو بھیج کر AJAX کے ساتھ ویب سائٹ کے مخصوص علاقوں (جیسے گرڈ) کو اپ ڈیٹ کرتے ہوئے سرچ ان پٹ کو محفوظ رکھنے میں مدد کرتا ہے۔ |
ASP.NET گرڈ میں تلاش کے معیار کو محفوظ رکھنے کے لیے اسکرپٹ کے حل کو سمجھنا
پیش کردہ اسکرپٹس کا مقصد ASP.NET ایپلی کیشنز میں ایک عام مسئلہ کو حل کرنا ہے جہاں صارف گرڈ سے انتخاب کرتے وقت اپنے تلاش کے پیرامیٹرز سے باخبر رہتے ہیں۔ پہلا نقطہ نظر جاوا اسکرپٹ کا استعمال کرکے کلائنٹ کی طرف تلاش کے ان پٹ کو اسٹور کرتا ہے۔ سیشن اسٹوریج فنکشن اس حکمت عملی سے صارف کا تجربہ بہتر ہوتا ہے، جو اس بات کو یقینی بناتا ہے کہ ویب سائٹ کے دوبارہ لوڈ ہونے کے بعد بھی تلاش کا جملہ فعال رہے۔ جب صفحہ دوبارہ لوڈ ہوتا ہے یا کوئی آئٹم منتخب کیا جاتا ہے، کیش شدہ سرچ ویلیو کو مقامی طور پر ان پٹ کیپچر اور محفوظ کر کے دوبارہ گرڈ پر لاگو کیا جا سکتا ہے۔ اس طریقہ کار کی بدولت صارف کو ایک ہی معیار کو داخل کرنے کی ضرورت نہیں ہوگی۔
ایک اور طریقہ سرور سائیڈ کا استعمال کرتا ہے۔ ویو اسٹیٹ ASP.NET کی خصوصیت۔ اس صورت میں، سرچ ویلیو کو ViewState آبجیکٹ میں رکھا جاتا ہے، جو پوسٹ بیکس میں ڈیٹا کو محفوظ رکھتا ہے۔ ViewState میں رکھی گئی قدر کو صفحہ پر واپس منتقل کیا جاتا ہے جب صارف گرڈ کے ساتھ تعامل کرتا ہے اور کسی آئٹم کو منتخب کرتا ہے۔ یہ طریقہ اس بات کی ضمانت دیتا ہے کہ تلاش کے پیرامیٹرز پورے سیشن کے لیے قابل رسائی ہیں اور آسانی سے سرور سائیڈ پروسیسنگ میں شامل ہو جاتے ہیں۔ تلاش کے ان پٹ کے نقصان کو روکنے کے لیے، سرور پھر تلاش کو کلائنٹ سائڈ گرڈ پر دوبارہ لاگو کرنے کے لیے اسکرپٹ چلا سکتا ہے۔
AJAX پورے صفحے کے دوبارہ لوڈ کو روکنے کے لیے تیسرے نقطہ نظر میں استعمال کیا جاتا ہے۔ صفحہ کی متحرک اپڈیٹنگ اس وقت ہوتی ہے جب کوئی آئٹم منتخب کیا جاتا ہے، جو سرور کو ایک غیر مطابقت پذیر درخواست کو متحرک کرتا ہے۔ یہ تلاش کے معیار کو برقرار رکھتا ہے — جو AJAX کی درخواست کے ساتھ دیا جاتا ہے — تدبیر کے ساتھ جب گرڈ ریفریش ہوتا ہے۔ اپ ڈیٹ ختم ہونے کے بعد، JavaScript فنکشن سرچ ویلیو کو گرڈ پر دوبارہ لاگو کرتا ہے۔ یہ تکنیک صارف کے تجربے کو زیادہ سے زیادہ کرنے کے لیے گرڈ کی حالت کو محفوظ رکھتے ہوئے مواد کو متضاد طور پر اپ ڈیٹ کرتی ہے۔
ایک مختلف طریقے سے، ان طریقوں میں سے ہر ایک سرچ ان پٹ کے تحفظ کی ضمانت دیتا ہے۔ آسان کلائنٹ سائیڈ حل کے لیے، سیشن اسٹوریج تکنیک مناسب ہے، جبکہ ویو اسٹیٹ ایک زیادہ جامع ASP.NET حکمت عملی پیش کرتا ہے۔ AJAX اس بات کو یقینی بناتا ہے کہ سرور سائڈ اپ ڈیٹس اور کلائنٹ سائڈ انٹرایکٹیویٹی کے درمیان توازن فراہم کرکے صارف کے اعمال تلاش کے عمل میں مداخلت نہ کریں۔ صارف کے رگڑ کو کم سے کم کرنے اور بغیر کسی رکاوٹ کے ASP.NET گرڈ پر مبنی ڈیٹا کے تعامل کے تجربے کو محفوظ رکھنے کے مقصد کے ساتھ ہر حل کارکردگی اور استعمال کے بہترین طریقوں کی پابندی کرتا ہے۔
آئٹم کے انتخاب کے بعد ASP.NET گرڈ میں تلاش کے معیار کو برقرار رکھنا
طریقہ 1: سیشن اسٹوریج کے ساتھ جاوا اسکرپٹ کا استعمال (کلائنٹ سائیڈ)
// JavaScript to store search criteria in session storage
$(document).ready(function() {
var searchValue = sessionStorage.getItem('searchValue') || '';
var table = $('#gridViewArtifacts').DataTable({
lengthMenu: [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],
searching: true,
ordering: true,
paging: true
});
table.search(searchValue).draw(); // Apply search from session
$('#gridViewArtifacts_filter input').on('keyup', function() {
sessionStorage.setItem('searchValue', $(this).val());
});
});
ASP.NET میں پوسٹ بیکس کے دوران سرچ ان پٹ کو برقرار رکھنا
نقطہ نظر 2: ASP.NET ViewState (سرور سائیڈ) کا استعمال
' VB.NET Code-Behind: Store search criteria in ViewState
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not IsPostBack Then
ViewState("SearchValue") = String.Empty
End If
End Sub
Protected Sub chkSelect_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs)
' Retain search criteria in ViewState
Dim searchValue As String = CType(ViewState("SearchValue"), String)
ScriptManager.RegisterStartupScript(Me, Me.GetType(), "ApplySearch",
"document.getElementById('gridViewArtifacts_filter').value = '" & searchValue & "';", True)
End Sub
' Frontend JavaScript to capture search input
$(document).ready(function() {
$('#gridViewArtifacts_filter input').on('input', function() {
__doPostBack('UpdateSearch', $(this).val());
});
});
پورے صفحہ کو دوبارہ لوڈ کرنے سے روکنے کے لیے AJAX کا استعمال کرتے ہوئے تلاش کے معیار کو محفوظ کرنا
نقطہ نظر 3: جزوی صفحہ اپ ڈیٹس کے لیے AJAX
// JavaScript for AJAX request to retain search after item selection
$(document).ready(function() {
$('#gridViewArtifacts').DataTable({
lengthMenu: [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],
searching: true,
ordering: true,
paging: true
});
$('#chkSelect').on('change', function() {
var searchValue = $('#gridViewArtifacts_filter input').val();
$.ajax({
type: 'POST',
url: 'UpdateGrid.aspx',
data: { searchValue: searchValue },
success: function() {
// Reapply search after AJAX update
$('#gridViewArtifacts').DataTable().search(searchValue).draw();
}
});
});
});
ASP.NET اور JavaScript کے ساتھ گرڈ تلاش کی استقامت کو بڑھانا
صفحہ ریفریش یا پوسٹ بیک کے بعد گرڈ میں منتخب آئٹمز کی نمایاں حالت کو برقرار رکھنا ASP.NET گرڈ صارف کے تجربے کو برقرار رکھنے کا ایک اہم حصہ ہے۔ صارفین اپنے انتخاب کی جگہ پر رہنے کی توقع رکھتے ہیں کیونکہ جب وہ متعدد انتخاب کرتے ہیں تو وہ انٹرفیس کے دیگر شعبوں کے ساتھ تعامل کرتے ہیں۔ یہ اکثر مشکل ہوتا ہے کیونکہ کچھ ریاستیں گرڈ میں ترمیم کے نتیجے میں دوبارہ ترتیب دے سکتی ہیں۔ جاوا اسکرپٹ کا استعمال کرتے ہوئے اور ویو اسٹیٹ کو فعال کریں۔ اس کو حل کرنے کا ایک طریقہ پوسٹ بیکس کے بعد سلیکشن اسٹیٹ کو اسٹور کرنے اور دوبارہ لاگو کرنے کے لیے خصوصیت ہے۔
ڈویلپرز کلائنٹ سائڈ اسٹوریج استعمال کر سکتے ہیں، جیسے مقامی اسٹوریج یا سیشن اسٹوریجتلاش کے معیار کو ذخیرہ کرنے کے علاوہ ان اشیاء کا ٹریک رکھنے کے لیے جنہیں منتخب کیا گیا ہے۔ یہ خاص طور پر ایسے حالات میں مددگار ہے جہاں صارفین ایک ساتھ کئی مصنوعات کا انتخاب کرتے ہیں۔ JavaScript کو منتخب کردہ آئٹم IDs کو اسٹور کرکے صفحہ کے دوبارہ لوڈ ہونے کے بعد گرڈ پر سلیکشن کو دوبارہ لاگو کرنے کے لیے استعمال کیا جا سکتا ہے۔ صارف کے اعمال کو ضائع ہونے سے روک کر، یہ تکنیک صارف کے پورے تجربے کو بہت بہتر بناتی ہے۔
زیادہ پیچیدہ گرڈز کے لیے بہتر رفتار کی ضمانت دی جاتی ہے، خاص طور پر وہ جو بڑے ڈیٹا سیٹس کا انتظام کرتے ہیں، AJAX اپ ڈیٹس کا استعمال کر کے۔ تلاش کے پیرامیٹرز اور منتخب اشیاء کو برقرار رکھتے ہوئے، پورے گرڈ کو دوبارہ لوڈ کرنے کی ضرورت کو بچاتے ہوئے جزوی ترمیم کی جا سکتی ہے۔ ایک زیادہ سیال اور انٹرایکٹو گرڈ کا تجربہ ملا کر حاصل کیا جاتا ہے۔ AJAX سرور سائیڈ منطق کے ساتھ، جو ویب سائٹ کو ان کے ورک فلو میں مداخلت کیے بغیر صارف کی سرگرمیوں کو متحرک طور پر ڈھالنے کے قابل بناتا ہے۔
ASP.NET گرڈز میں تلاش اور انتخاب کو محفوظ رکھنے کے لیے اکثر پوچھے گئے سوالات اور ان کے جوابات
- میں پوسٹ بیک کے بعد تلاش کے معیار کو کیسے برقرار رکھ سکتا ہوں؟
- سرچ ان پٹ کو اسٹور کرکے پوسٹ بیکس کے درمیان تلاش کے معیار کو محفوظ کیا جاسکتا ہے۔ sessionStorage یا ViewState.
- جب ویب سائٹ ریفریش ہو جاتی ہے، کیا میں اپنے انتخاب کو گرڈ میں برقرار رکھ سکتا ہوں؟
- جی ہاں، صفحہ کے دوبارہ لوڈ ہونے پر منتخب کردہ آئٹم IDs کو دوبارہ لاگو کرنے کے لیے JavaScript کا استعمال کرکے اور انہیں محفوظ کر کے localStorage یا sessionStorage.
- گرڈ آئٹمز کا انتخاب کرتے وقت، کیا صفحہ کو مکمل طور پر دوبارہ لوڈ ہونے سے روکنے کا کوئی طریقہ ہے؟
- جزوی صفحہ اپ ڈیٹس کے لیے، استعمال کریں۔ AJAX گرڈ کو مکمل طور پر دوبارہ لوڈ ہونے سے بچنے اور تلاش کے پیرامیٹرز کو محفوظ رکھنے کے لیے۔
- کیا پوسٹ بیکس کے درمیان ترتیب اور صفحہ بندی کے انتخاب کو محفوظ کیا جا سکتا ہے؟
- جی ہاں، ملازمت DataTables; متبادل طور پر، استعمال کریں sessionStorage یا ViewState حالت کو برقرار رکھنے کے لئے جائیداد۔
- گرڈ میں آئٹم کا انتخاب اور ایک ساتھ تلاش استقامت؟
- ہاں، آپ تلاش کے معیار اور منتخب اشیاء کو صفحہ میں ذخیرہ کرنے کے بعد دوبارہ لوڈ ہونے پر دوبارہ لاگو کرنے کے لیے JavaScript استعمال کر سکتے ہیں۔ sessionStorage.
ASP.NET گرڈز میں تلاش اور انتخاب پر حتمی خیالات
ASP.NET گرڈز میں صارف کے تجربے کو بہتر بنانے کے لیے ضروری ہے کہ آئٹمز منتخب ہونے کے بعد تلاش کے معیار کو برقرار رکھا جائے۔ کلائنٹ سائڈ اور سرور سائڈ کی حکمت عملی اس بات کی ضمانت دیتی ہے کہ صارف پوسٹ بیکنگ کے دوران اپنے سرچ ان پٹ کو برقرار رکھیں گے۔ اس کے نتیجے میں زیادہ ہموار اور صارف دوست انٹرفیس ہوتا ہے۔
تلاش کے ان پٹ اور منتخب کردہ آئٹمز کو محفوظ کرنا، خواہ بذریعہ ویو اسٹیٹ برقرار رکھنے یا جاوا اسکرپٹ اسٹوریج، مقصد ہے. اس سے جھنجھلاہٹ کو کم کرنا چاہیے۔ ان تکنیکوں کو استعمال کرکے، آپ اپنی گرڈ پر مبنی ایپس کی متحرک اور صارف دوست نوعیت کو برقرار رکھ سکتے ہیں جبکہ مجموعی استعمال کو بھی بڑھا سکتے ہیں۔
ASP.NET گرڈ تلاش استقامت کے لیے حوالہ جات اور ماخذ مواد
- پر تفصیلی معلومات ASP.NET ویو اسٹیٹ اور یہ پوسٹ بیکس کے درمیان ڈیٹا کو کیسے محفوظ رکھتا ہے اس سے حاصل کیا گیا تھا۔ مائیکروسافٹ کی سرکاری دستاویزات .
- دی ڈیٹا ٹیبلز جاوا اسکرپٹ تلاش کی فعالیت میں استعمال ہونے والے انضمام کا حوالہ دیا گیا تھا۔ ڈیٹا ٹیبلز کی سرکاری دستاویزات .
- کا استعمال سیشن اسٹوریج جاوا اسکرپٹ میں کلائنٹ سائڈ ڈیٹا کو ذخیرہ کرنے کے لیے کی مثالوں کا استعمال کرتے ہوئے دریافت کیا گیا۔ MDN ویب دستاویزات .
- نافذ کرنے کی ہدایت AJAX گرڈ اسٹیٹ کو برقرار رکھتے ہوئے صفحہ کو دوبارہ لوڈ ہونے سے روکنے کے لیے سے جمع کیا گیا تھا۔ W3Schools AJAX ٹیوٹوریل .