Web窗体是ASP.NET Web框架的一部分。它是您可以用来创建Web应用程序的编程模型之一。 Web窗体是用户通过其浏览器请求的页面,它们构成了为Web应用程序提供外观的用户界面(UI)。
按照 CHATGPT 指南,我在 Web 应用程序的 bin 文件夹中添加了一个控制台文件 dll(Inboundnightlybatchfile 是我的控制台文件)。要访问 dll 需要在我们的应用程序中导入...
我正在尝试在 JavaScript 中创建一个可重用的函数来调用需要用户确认的按钮。 我的 WebForms 母版页上已经有此代码。 函数 sweetAlertConfirm(btn, ti...
努力将 DropZoneJS 集成到 C# WebForms 应用程序中
我正在努力让 DropZoneJS 在我的 ASP.NET C# WebForms 应用程序中工作,我需要一些帮助。 我在基本母版页中有以下代码: <%@ Master Language="C#" AutoEvent...
ASP.NET (.NET Framework) <form> 标签中的 asp 按钮不调用 OnClick 函数
我的 Default.aspx 中有两个表单 输入字符串:... 我的 Default.aspx 中有两个表单 <div class="form"> <form id="WordFilterForm" > <label for="inputString">Enter a string:</label> <input type="text" id="inputString" name="inputString" required="required" /> <br /> <asp:Button ID="WordFilterButton" runat="server" Text="Filter" OnClick="WordFilterButton_Click" /> </form> </div> <div class="WordCountContainer"> <form id="WordCountForm"> <label for="inputText">Enter a large string:</label> <textarea id="inputText" name="inputText" rows="10" cols="50" required="required"></textarea> <br /> <asp:Button ID="WordCountButton" runat="server" Text="Count" OnClick="WordCountButton_Click" /> </form> <div> WordFilterButton_Click 和 WordCountButton_Click 均在 Default.aspx.cs 中使用受保护的签名进行定义。 问题是,每当在第二个表单(表单 id="WordCountForm")中单击“计数”按钮时,没有任何反应,并且 WordCountButton_Click 不会根据调试器执行。 但是,如果我将其放在第一种形式中,相同的按钮就可以工作。 知道为什么第二个表单按钮不会执行 OnClick 函数吗? ASP.NET 页面只能有一个带有 (runat="server") 属性的表单标签来使事件处理程序工作。因此,有必要将上述属性添加到第一个表单,将所有服务器端控件移至其上,然后删除第二个表单,以便在 ASP.NET WebForms 应用程序中正确实现表单/回发。 您缺少这两种表单的 runat="server" 标签。 事实上,如果您不添加该标签,您应该会收到如下错误: 根本不清楚为什么您没有收到上述错误。 而且,由于您无法嵌套表单标签,因此每页只能有一个。 既然每页实际上只能有一个 <form> 标签,那么为什么要有两个呢? (反正是不允许的)。 我不明白为什么仅仅一个简单的 div 来布局或分隔你想要的部分在这里是不够的。 也许您将 <form> 标签与 formview 标签混淆了? 放弃对表单标签的多次使用,只需始终使用 VS 为您创建的默认表单标签,并将您的内容放置在该表单标签内即可。
我的页面上有一个 ,但它无法正常工作。即:仅运行1次,而页面上出现第三方元素。 这是代码: 我的页面上有一个 <asp:UpdatePanel>,但它无法正常工作。即:仅运行1次,而页面上出现第三方元素。 这是代码: <div class="field-section-row" style="padding-top: 0; padding-bottom: 0"> <div class="field-section"> <asp:Label ID="lName" runat="server" Text="#Name#" meta:resourcekey="lName" CssClass="field-label"></asp:Label> <asp:TextBox ID="tbName" CssClass="form-control" runat="server" xStringMaxLength="180" OnTextChanged="tbName_TextChanged" AutoPostBack="true" MaxLength="180"></asp:TextBox> .......... </div> <div class="field-section-row" style="padding-top: 0; padding-bottom: 0"> <asp:UpdatePanel runat="server" ID="upProductVariations" UpdateMode="Conditional"> <ContentTemplate> <iLightSite:ProductVariations ID="productVariations" runat="server"></iLightSite:ProductVariations> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="tbName" EventName="TextChanged" /> </Triggers> </asp:UpdatePanel> </div> 如您所知,当更改 tbName 输入字段中的值时,<iLightSite: ProductVariations> 控件会自动更新。 但有一个问题。更新仅发生1次,而页面上出现第三方元素: 我做错了什么? 我尝试在不同的地方使用 UpdatePanel,在 Google 和 ChatGPT 中搜索,但可惜的是,只出现了一个错误,如屏幕截图所示,仅此而已。 朋友们,谢谢大家的帮助。问题出在 UpdatePanel 中的控件如何工作。 我使用 RadAjaxManager 而不是 UpdatePanel,它起作用了。 此处的提示是第三方插件,或者大多数 JavaScript 插件的工作方式。 大多数 JavaScript 库如何工作的答案是,它们让整个页面呈现,然后在大多数情况下,页面“准备就绪”,然后运行一些 JS 代码来加载/设置/配置该控件。 在首页加载时,更新面板实际上不会发挥作用,它会加载页面上的所有其余内容。 但是,由于更新面板的整个想法是不回发完整页面,因此当您仅回发更新面板时,您的第三方 JS 代码不会在页面就绪时再次运行,因为页面就绪 JS 代码不会再次运行不重新运行。毕竟,这里的想法是不要进行整页回发。 更新面板发布后,后台代码(服务器端)运行。当然,您只能更新该面板内的控件。然后就像整个页面“回发返回”(所谓往返)一样,更新后的内容又回到了客户端。就像整页回发一样,如果您内部有基于某些 JS 库的控件,则页面就绪不会触发,因此需要维护、更新、管理和更新所需的 JS 代码按要求设置第三方控件不再运行。 让我们举个例子。对于此示例,我们使用“justGauge”示例。这是一个非常好的第三方仪表控件。 我们将在文本框中输入一个值 - 触发更新面板。 我们有这个标记: <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.4/raphael-min.js"> </script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/justgage/1.2.9/justgage.min.js"> </script> <div style="padding:35px"> Enter Guage value: <asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged" AutoPostBack="true" > </asp:TextBox> <br /> <br /> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <h3>Update panel results</h3> <asp:HiddenField ID="HiddenField1" runat="server" value="5" ClientIDMode="Static" /> <div id="gauge0" style="width:130px;"> </div> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="TextBox1" EventName="TextChanged" /> </Triggers> </asp:UpdatePanel> </div> <script> var myGauge0; window.onload = function () { SetupGauge() } function SetupGauge() { console.log("Start setup") var gValue = $('#HiddenField1').val() myGauge0 = new JustGage({ id: "gauge0", value: gValue, min: 0, max: 10, label: "Files Uploaded", showInnerShadow: true, shadowOpacity: 2, shadowSize: 5, startAnimationTime: 2000, startAnimationType: ">", refreshAnimationTime: 3000, refreshAnimationType: "bounce", donut: true, counter: true, relativeGaugeSize: true, guageColor: "#0094ff", levelColors: [ "#00fff6", "#ff00fc", "#1200ff" ] }); } </script> 使用复杂的第三方插件(justGauge),则必须触发页面加载客户端。 当我们运行上面的代码时,我们得到: 当然,问题是复杂的 JS 库必须在我们的更新面板回发后重新运行。所以上面的例子不起作用。 请记住,更新面板实际上并不会阻止回发,但实际上会发布页面的一部分,并且它仍然执行“标准”往返。这意味着,在运行更新面板代码后(甚至该页面的页面加载事件始终与更新面板回发一起运行),然后标记会返回,但当然 JS 仪表控件没有视图状态等等 页面更新后,JS 代码需要重新运行(页面就绪)。 但是,由于我们没有进行全页回发,因此所需的“页面就绪”JS 代码不会重新运行。 您可以添加一些JS代码以在更新面板完成往返后重新运行代码。 可以添加此代码: var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_endRequest(SetupGauge); 现在我们的脚本代码变成了这样: <script> var myGauge0; window.onload = function () { SetupGauge() } var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_endRequest(SetupGauge); function SetupGauge() { console.log("Start setup") var gValue = $('#HiddenField1').val() myGauge0 = new JustGage({ id: "gauge0", value: gValue, min: 0, max: 10, label: "Files Uploaded", showInnerShadow: true, shadowOpacity: 2, shadowSize: 5, startAnimationTime: 2000, startAnimationType: ">", refreshAnimationTime: 3000, refreshAnimationType: "bounce", donut: true, counter: true, relativeGaugeSize: true, gaugeColor: "#0094ff", levelColors: [ "#00fff6", "#ff00fc", "#1200ff" ] }); } </script> 现在我们的第三方插件可以工作了,因为更新面板运行后,我们调用与“页面就绪”相同的代码,这是其工作所需的。 我们现在看到/得到这个:
在日期时间列上获取两个时间之间的数据时,它不返回任何行 - ASP.NET / C#
我从事 ASP.NET Web 表单项目;我无法获取日期时间列上两个时间(时间从和时间到)之间的数据。 C#函数 公共数据表 GetDataForSearch(字符串日期记录,字符串 FromTime,
是否可以使用aspx c# customvalidator来调用action?
最终目标 我有一个文本框,用户在其中输入数据,并且有一个“CustomValidator”,用于检查数据库中是否存在文本框条目。如果是这样,我希望从数据库中填充数据...
在 IIS 服务器上成功验证后,ASP.NET Web 表单页面重定向回登录
我们有一个 ASP.NET Web 表单应用程序,它使用表单身份验证,在 Visual Studio 本地使用时可以正确进行身份验证和登录。 但是,当尝试将站点部署到
不使用文件上传控件读取Excel文件 - ASP.NET WEBFORM
我需要处理excel文件中的数据并将记录加载到表中。界面只显示一个按钮,我不想使用FileUpload控件 用户应该单击一个按钮和文件选择对话框
将 http: 重定向到 https: 的 URL 重写规则不起作用 - IIS 10 - Asp.Net Framework 4.8 - Web 表单 - aspx
我们在“默认网站”下安装了旧版 ASP.NET webforms .aspx Web 应用程序。 考虑到还有其他 Web 应用程序,是否可以仅针对此 Web 应用程序启用 https:
Https 仅适用于一个 ASP.NET Web 表单应用程序?
我们在“默认网站”下安装了旧版 ASP.NET webforms .aspx Web 应用程序。 考虑到还有其他 Web 应用程序,是否可以仅针对此 Web 应用程序启用 https:
我一直在尝试将图像保存在文件夹中,我正在使用jquery获取图像名称,例如example.jpg,然后我在ajax方法中使用图像名称将其发送到我的details.aspx文件,但我的问题是fa。 ..
假设我们有以下带有单个按钮的简单 Web 表单页面: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="
我正在尝试重新创建我制作的 C# 控制台应用程序,但这次是在 ASP.Net Web 窗体中,但我的按钮遇到了一些问题。 我制作了 2 个按钮,一个用于初始化变量
我有一个使用混合身份验证的 asp.net webforms (c#) 应用程序。 根据输入的电子邮件后缀类型,用户通过表单方法进行身份验证,或者登录电子邮件是否属于
在 ASP.NET Webform 中使用 JQuery 和 Ajax 进行 CRUD
我正在学习在 ASP.NET Webform 中使用 Jquery 和 Ajax 进行 CRUD,但我陷入了删除和更新功能。对于插入功能正常工作,但对于删除和更新功能不起作用......
为什么我不能在.Net Framework 4.6的App_Code文件中使用WebRequestHandler
我正在尝试使用 .net Framework 4.6 导入位于 Web 表单应用程序的 App_Code 文件夹中的 .vb 文件中的 WebRequestHandler 类。 这不起作用并显示编译器...
我正在使用 Webform 在 Drupal 10 中创建一个表单。我可以添加“文本字段”、“文本区域”等元素。当我尝试添加“文件上传”时,没有列出任何内容。请...
在 ASP.NET Web 表单应用程序和 Blazor 应用程序之间共享会话
故事是这样的, 我们的电子商务网站的框架版本是4.7.2,它是使用asp.net(vb.net)创建的。当前的应用程序将更改为 blazor 应用程序 (7.0)。我们雇用...
使用按钮在 aspx.cs 上调用 JavaScript 函数(以 aspx 形式)
我有这个aspx: 函数新页(){ document.location.href = "http://www.nextservice.pt/" } ...</desc> <question vote="2"> <p>我有这个aspx:</p> <pre><code> <body> <div> <script type="text/javascript"> function NewPage() { document.location.href = "http://www.nextservice.pt/" } </script> <form id="form1" runat="server"> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Btn2" runat="server" Text="OK" onclick="Button2_Click" /> CODE1: <asp:Label ID="Label1" runat="server" Text="Label" ForeColor="#CC0000" /> </form> </div> </body> </code></pre> <p>我正在使用 Web 表单,我不会在 aspx.cs 上调用此按钮</p> <pre><code> public partial class SITE_TESTER : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button2_Click (object sender, EventArgs e) { string code = TextBox1.Text.ToString(); if (!verifyCode(code)) // comparing users from table { Label1.Text = "Not Exists"; //for invalid code } else { Label1.Text = "Exist"; //for sucsseful code /* I Wont call my JavaScript Function here!!!! */ } } } </code></pre> </question> <answer tick="true" vote="10"> <p>您可以通过以下方式从 asp.net 中的服务器端调用 JavaScript 方法:</p> <pre><code>protected void button_Click(object sender , EventArgs e) { string jsMethodName = "NewPage()"; ScriptManager.RegisterClientScriptBlock(this, typeof(string), "uniqueKey", jsMethodName, true); //or //ScriptManager.RegisterStartupScript(this, GetType(), "NewPage()", false); } </code></pre> <p>您可以使用 <pre><code>ScriptManager.RegisterStartupScript</code></pre> 或 <pre><code>ScriptManager.RegisterClientScriptBlock</code></pre></p> <p>两者的区别解释如下:</p> <p>假设我们有一个 .aspx 页面,其中包含以下表单标记:(行 没有。供参考)</p> <pre><code>1. <form id="Form1" runat="server"> 2. .. 3. .. 4. .. 5. </form> </code></pre> <p>现在让我们看看每种方法的主要区别:</p> <p>A. <pre><code>Page.RegisterClientScriptBlock()</code></pre> 将插入脚本的<em>block</em> 2号线之前。 <pre><code>Page.RegisterStartupScript()</code></pre> 将在第 4 行之后插入脚本。</p> <p>B. <pre><code>Page.RegisterClientScriptBlock()</code></pre> 通常应该用于脚本 封装在函数中。 (因此出现了“块”这个词) <pre><code>Page.RegisterStartupScript()</code></pre> 可用于任何脚本,即使它是 不在函数中。</p> <p>C. <pre><code>Page.RegisterClientScriptBlock()</code></pre> 应用于以下功能 不需要在页面加载时运行。 <pre><code>Page.RegisterStartupScript()</code></pre> 应用于必须运行的脚本 页面加载时。</p> <p>D。 <pre><code>Page.RegisterClientScriptBlock()</code></pre> 应用于执行以下操作的脚本 不需要创建表单元素。 <pre><code>Page.RegisterStartupScript()</code></pre> 应用于需要 已创建的表单元素并使用对它们的引用。</p> <p>请注意,所有 4 个差异本质上都与每个差异相关 其他(它们建立在前一个的基础上)。差异放在一行中 有时可能太微妙了。</p> <p>您可以从<a href="https://stackoverflow.com/questions/666519/difference-between-registerstartupscript-and-registerclientscriptblock">这里</a>和<a href="https://groups.google.com/forum/?fromgroups=#!topic/DotNetDevelopment/QC0sC-bJBMU" rel="nofollow noreferrer">这里</a></p>了解更多信息 </answer> <answer tick="false" vote="0"> <p>您可以添加一个脚本,该脚本将在页面加载到浏览器时执行:</p> <pre><code>Page.RegisterStartupScript("unique_key", "<script type=\"text/javascript\">NewPage()</script>"); // but this is deprecated function </code></pre> <p>或者像这样:</p> <pre><code>ClientScript.RegisterClientScriptBlock(this.GetType(), "unique_key", "NewPage()", true); </code></pre> <p>但是如果你只是想进行重定向(正如我从你的 NewPage 函数中看到的那样),你可以这样做:</p> <pre><code>Response.Redirect("http://www.example.com"); </code></pre> </answer> </body></html>