それで、私はしばらく前から asp.net を使って作業しているのですが、まだ原因がわからないこのバグに遭遇しました。
私の aspx ファイル:
<%@ Page Title="Incomes and Outcomes" Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="true" CodeBehind="IncomePage.aspx.cs" Inherits="AccountingSite.IncomePage" EnableEventValidation="false"%>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<link rel="stylesheet" href="Res/display.css"/>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div class="cont">
<div class="text-center">
<p class="box-main">Incomes and Outcomes</p>
</div>
<br />
<br />
<div class="row">
<div class="col50 b1">
<asp:TextBox runat="server" placeholder="Description" ID="inputDesc"></asp:TextBox>
</div>
<div class="col50 b1">
<asp:TextBox runat="server" placeholder="Value" ID="inputValue"></asp:TextBox>
</div>
</div>
<br />
<div class="row">
<div class="col50 b1 autocomplete">
<asp:TextBox runat="server" placeholder="Customer" ID="inputCustomer"
AutoCompleteType="Disabled" ClientIDMode="Static"></asp:TextBox>
</div>
</div>
<br />
<div class="text-center">
<asp:Button runat="server" Text="Add" CssClass="sub topBtn" ID="AddBtn"
OnClick="AddIncome_Click" CausesValidation="false"/>
<asp:Button runat="server" Text="Remove selected" CssClass="sub-remove topBtn"
OnClick="RemoveIncome_Click" CausesValidation="false"/>
</div>
<br />
<br />
<div class="row text-center">
<label style="font-size: 18px;">Date:</label>
<input type="date" id="inputDate" runat="server" onchange="ValueChanged();"/>
<asp:Button runat="server" ID="SOME_BTN" ClientIDMode="Static" Text="Test"
OnClick="SOME_BTN_Click" CssClass="asdf" CausesValidation="false"/>
</div>
<br />
<div class="row">
<div class="colThird topRow text-center f1">
<label>Description</label>
</div>
<div class="colThird topRow text-center f1">
<label>+</label>
</div>
<div class="colThird topRow text-center f1">
<label>-</label>
</div>
</div>
<%
Response.Write("<h1>Test</h1>");
//Write();
%>
</div>
<script>
function ValueChanged() {
var sb = document.getElementById("<%=SOME_BTN.ClientID %>");
sb.click();
}
</script>
</asp:Content>
cs ファイル:
public partial class IncomePage : System.Web.UI.Page
{
bool running = false;
public double pos = 0;
public double neg = 0;
private static string[] Customers;
protected void Page_Load(object sender, EventArgs e)
{
Main.CurrentPage = IPage.IncomePage;
if (Session["Logged"] == null)
{
//Response.Redirect("LoginPage.aspx");
//return;
}
}
protected void AddIncome_Click(object sender, EventArgs e)
{
Main.Send(this, "test");
}
protected void RemoveIncome_Click(object sender, EventArgs e)
{
Main.Send(this, "test");
}
public void Write()
{
}
public double GetBalance()
{
return Main.GetBalance();
}
protected void SOME_BTN_Click(object sender, EventArgs e)
{
if(inputDate.Value != null)
{
var x = DateTime.Parse(inputDate.Value).ToString().Split(' ')[0];
Response.Redirect("IncomePage.aspx?d="+x);
}
}
}
メソッド Main.Send() は JavaScript コードでalert() を実行するため、デバッグの目的で使用されます。
(上記のコードに示すように) aspx ファイルに Response.Write() を追加すると、ASP ボタンが機能しなくなり、クリック イベントがまったく発生しなくなるようです。奇妙なことに、コードは他の aspx ファイルではまったく問題なく実行されます。
------------------------
必要がない場合は、Response write を使用しないでください。ren のように、多くのことが台無しになります。デリングとスタイルシート。代わりに、ラベルのテキストを設定し、必要に応じてそのラベル (Visible = true) を表示することを検討してください。
経由でアラート ボックスを使用することもできます。
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "alrt", "alert('+ " label.Text + "');", true);
コードビハインドから関数を呼び出すこともできます
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "func", "functioName();", true);
1
問題は、私が作業しているこのページが、データベースに基づいて一連の div と要素を作成するという点で動的であるため、基本的にデータベースに含まれるものを表示することです。 Main.Send メソッドは、上で説明したことを正確に実行します。
– Java99 さん
2020 年 9 月 5 日 9:39