PDA

View Full Version : عدم پرش صفحه



mhi.iranmanesh
پنج شنبه 02 آذر 1396, 13:52 عصر
سلام دوستان
من می خوام وقتی تو یک صفحه مثلاً وسط صفحه روی یک button کلیک می کنم بعد از رفرش شدن همون صفحه بیاد همونجایی که بوده، نره اول صفحه!؟
لطفا راهنماییم کنید

Tekyegah
پنج شنبه 02 آذر 1396, 17:25 عصر
سلام
به نظر من اگه با پرش صفحه و refresh شدن مشکل دارید ، بهتره به jquery سوئیچ کنید و درخواست ها رو با ajax بفرستید .
اما در خصوص سوال :
ببنید وقتی صفحه بصورت معمولی load میشه IsPostBack برابر false هست . اگه روی button کلیک کنید و صفحه refresh شه حالا IsPostBack برابر true میشه .
و اگه شما فقط یه button داری توی صفحه دارید میتونید روی اون یا هر بخشی از صفحه که ID داشته باشه Focus کنید .

شما کافیه توی page load بنویسید :

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If IsPostBack Then
Button1.Focus()
End If
End Sub
موفق باشید

mhi.iranmanesh
جمعه 03 آذر 1396, 14:45 عصر
ممنون از توضیح کاملتون مشکل بنده حل شد.
ولی در رابطه با کد jequery که گفتین ایا می شه برای اتصال به پایگاه داده هم از این کدها استفاده کرد اگه میشه راهنمایی کنید ممنون.

Tekyegah
شنبه 04 آذر 1396, 19:00 عصر
به سلامتی

خود jquery یه رابط هست و خودش بصورت مستقیم نمیتونه به دیتابیس وصل بشه .

به این مثال نگاه کنید :

فکر کنید شما یه صفحه HTML داریدبه نام index.html با محتوای زیر :

<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<div id="div1"></div>
<br />
<button id="btn1">Get data</button>
</body>
</html>
<script>
$(document).ready(function () {
$("#btn1").click(function () {
$.ajax({
type: "GET",
url: "Engine.aspx",
data: "do=backtxt",
cache: false,
success: function (str) {
$("div1").html(str)
}
});
});
});
</script>

حالا یه صفحه به نام Engine.aspx بسازید
بعد از این که ساختید خود فایل engine.aspx رو open کنید .

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Engine.aspx.vb" Inherits="Engine" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>

</div>
</form>
</body>
</html>


حالا تمامی متن موجود رو پاک کنید بجز خط اول یعنی فقط این بمونه :


<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Engine.aspx.vb" Inherits="Engine" %>


حالا فایل Engine.aspx.vb ( اگه از #C استفاده میکنید میشه فایل Engine.aspx.cs )
تو قسمت Page Load بنویسید


Partial Class Engine
Inherits System.Web.UI.Page

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
Response.Write("تست")
End Sub
End Class

حالا فایل index.html رو اجرا کنید و روی button کلید کنید . بدون refresh کردن صفحه مقدار test توی صفحه میاد .
در واقع درخواست با Ajax به سمت سرورتون میره و مقداری رو برمیگردونه ... اگه درخواست بدون مشکل رفت و برگشت در حالا success قرار میگیرید و مقدار برگشتی در متغییر str قرار میگیره و شما میتونید با این مقدار برگشتی هر کاری کنید .

حالا میتونه به جای عبارت "تست" شما هر کاری سمت سرور بکنید . 10 تا select و update و ... با sql بزنید ... هر کاری خواستید بکنید در آخر نتیجه تمامی فعالیت هاتون رو با response.write برگردونید .

امیدوارم توضیحاتم کامل بوده باشه . سوالی بود در خدممتون هستم .

اگه با jquery و امکاناتش آشنا نیستین یه سرو به این سایت بزنید و با ابزارها و امکاناتش آشنا بشید : https://www.w3schools.com/jquery/default.asp

سوالی بود در خدمتیم