能否用javascript去抓VB.net後端取得的值來判斷是否執行javascript的funct

Wiz
各位前輩好
小弟目前主要是寫VB.net
但由於想使用Bootstrap的互動視窗(Modal)功能
要在進入該頁面時就跳出互動視窗
所以必須在前端語法中加入JavaScript
在這之前幾乎從來沒碰過javascript
靠著關鍵字去找也找不太到
所以想來請教各位

今天我會在後端Pageload()的時候從資料庫取一個特定的時間
用來跟當下時間比較 如果一樣就執行Script的語法
語法大致上如下
<script>
        if (lbl3000date.innerText == lbltoday.innerText) {
        
            window.onload = function(){
            $('#myModal').modal('show');
        }
        }
    </script>


把Modal顯示出來這樣子
不一樣就不顯示
但大概試了一天發現找不到方法來在Script頁面取後端Pageload取到的值
或者我語法有錯(想要在Pageload取完值後才執行此段程式)

也有想過直接將Modal的html標籤加上runat=server然後在後端vb.net來控制是否顯示Modal
但好像只有按鈕事件才做得到.... 而我希望的做法是頁面載入後直接顯示Modal
不會使用到按鈕來呼叫這樣子 但找不到一個解決方式

如果是我的觀念錯誤
還麻煩各位前輩糾正
也希望各位能不吝嗇給予指導 謝謝各位前輩
Wiz
補充
從Pageload取到的時間會轉成特定格式後變成字串
在丟到<p>的文字標籤裡面
所以Script語法中才會有lbl3000Date.innertext和lblToday.innertext
缺氧的羊:窒息
如果你的當下時間, 是Server的時間,

那你可以直接在後端pageload時, 直接判斷

if lbl3000date.innerText = lbltoday.innerText then
    '在這裡直接把 你的那一段 window.onload,....
    '輸出到 你的那個 <p> 
end if

缺氧的羊:窒息
更正一下判斷式 (看你的變數名稱是什麼, 自己改一下)
if lbl3000date = lbltoday then
...
...
end if
Wiz
前輩您好
因為我用的後端語法是VB.net
所以可能沒辦法像您說得直接把那段Script程式放進去
主要希望的步驟為:
1. 進入網頁後PageLoad查詢資料表中某特定時間,成功查詢後將「該時間」還有「當下時間」分別丟到lbl3000和lbltoday的innertext中
2. javascript是否有可以在pageload跑完後才執行function的時間點,如果有的話,再跑完步驟1後將2值做比較
3. 如果一樣就進入執行將Modal給show出來

當前問題點
1. 不知道JavaScript如何抓取VB.net的值
2. 不知道JavaScript是否有可以在VB.net後端PageLoad跑完後才執行Function的時間點 EX. window.onload 好像是等「前」端物件載入後才執行
3. 或者VB.net是否有其他方式可以直接呼叫並show出Modal

最有價值解答

缺氧的羊:窒息
把以下文字存成 xxx.aspx
再去試試看

<%@ Page Language="VB"  ValidateRequest="False" %>
<!DOCTYPE html>
<html lang="zh">
<head>
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>

<form id="form1" runat="server" autocomplete="off">
	資料庫時間 : <asp:Label id="lb_db_time" runat="server" /><br>
	系統時間 : <asp:Label id="lb_sys_time" runat="server" /><br>
	結果 : <asp:Label id="lb_memo" runat="server" />
</form>

<!-- Modal -->
<div id="myModal" class="modal fade" role="dialog">
	<div class="modal-dialog">
		<div class="modal-content">
			<div class="modal-header">
				<button type="button" class="close" data-dismiss="modal">&times;</button>
				<h4 class="modal-title">訊息 : </h4>
			</div>

			<div class="modal-body">
				<span class="text-info">這是自動提示訊息</span>
			</div>

			<div class="modal-footer">
				<button type="button" class="btn btn-default" data-dismiss="modal">確定 (Close)</button>
			</div>
		</div>
	</div>
</div>



<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

<asp:Literal id="custom_script" runat="server" />

</body>
</html>

<Script Language="VB" runat="server">
	Sub Page_Load(sender As Object, e As EventArgs) Handles MyBase.Load

		Dim db_Time As Date = CDate("2021/8/24 09:49") '資料庫時間(從資料庫取得)

		Dim sys_Time As Date = Now()

		Me.lb_db_time.Text = db_Time.toString("yyyy/MM/dd HH:mm:ss")
		Me.lb_sys_time.Text = sys_Time.toString("yyyy/MM/dd HH:mm:ss")



		If Not IsPostBack Then
			Dim timeCheck As Integer = DateDiff(DateInterval.Minute, db_Time, sys_Time)

			If timeCheck >= -5 AndAlso timeCheck <= 5 Then 'DB時間與系統時間相差不到5分鐘的話,,, 
				Me.lb_memo.Text = "彈出視窗..."

				'輸出javascript指令
				Me.custom_script.Text = "<scr" & "ipt> window.onload = function(){ $('#myModal').modal('show'); } </scr" & "ipt>" 
			Else
				Me.lb_memo.Text = "不做任何事..."
			End If

		End If

	End Sub

</Script>


Wiz
謝謝前輩的指導
原來這樣就可以直接在前端跑VB
不好意思沒提供甚麼程式碼要您憑空指導我
剛才大致改寫過後已解決我的困擾
非常感謝!
回到頂部