【发布时间】:2019-11-14 09:10:45
【问题描述】:
我有一个文本框,它将接收来自扫描仪的输入。如果文本框为空并且按下键,则会出现一条错误消息,但如果有任何输入,它将插入到数据库中。
<asp:Textbox runat ="server" id="Scan" style="width:1200px;height:100px;border:1px solid #000; background-color:white" OnTextChanged="Scan_TextChanged" Onkeypress=" Keypress()" AutoPostBack="true" " ></asp:Textbox>
这是javascript函数..我不知道如何将函数传递给.cs文件
$("#Scan").keypress(function(e) {
var valmsg = $('#Scan').val();
if (e.which == 13 && valmsg.trim() == "") {
e.preventDefault();
document.getElementById("Scan").value = "There is no desk no entered! Please Scan again.";
} else if (e.which == 13) {
//i don't know how to insert the function here
}
如果有任何输入,我想在 .cs 文件中执行该文件
protected void Scan_TextChanged(object sender, EventArgs e)
{
string strSql;
string en;
en = desk;
string strDeskNo = (Scan.Text);//sepatutnya ada Trim(Scan.Text)
strSql = "Insert into //sql query
}
请指导我如何做到这一点.. 如果有任何教程可以让我学习更好地理解 js? 提前致谢
更新:我使用一个按钮来触发服务器方法,但我仍然无法在我的数据库中输入任何值。
<asp:button ID="InvisButton" runat="server" style="display:none;" OnClick="InvisButton_Click" OnClientClick="CallServerMethod()" />
protected void InvisButton_Click(object sender, EventArgs e)
{
//query to insert database
}
function CallServerMethod() {
document.getElementById('InvisButton').click();
【问题讨论】:
-
所以你有一个网络应用程序?我似乎不清楚你想做什么。必须在 服务器 上执行 sql 查询。而网页在 client 上运行。通常所做的是,您有一个 API(在 ASP.NET MVC 中,它们称为控制器操作),您可以从您的网站(在您的 javascript 中)发送 HTTP 请求(通常是用于推送数据的 HTTP POST)。您的 API 服务器接收到 HTTP 请求,并相应地插入到数据库中。
-
$("#Scan") 不会被触发,因为
textbox 会生成不同的id -
你必须从客户端代码触发c#方法
-
@GoodSamaritan 感谢您的回复,我更新了我的问题,通过使用按钮调用服务器端。这种方式可以接受吗?
-
对不起,但这个问题意味着缺乏很多网页如何工作的知识,而不是搜索如何做这件事,我宁愿建议做一些阅读有关 ASP.NET、JavaScript、C# 和应用程序架构的一般信息。只是为初学者或其他东西谷歌 ASP.NET。
标签: javascript c# jquery html asp.net