เหตุการณ์การคลิกปุ่มแฟนซีไม่เริ่มทำงาน

ฉันกำลังออกแบบเพจ ASPX ที่หรูหรา แต่ฉันมีปัญหาในการเริ่มการทำงานของปุ่มเพื่อรันโค้ด นี่คือสิ่งที่ฉันมี:

นี่คือรหัส ASPX:

<button runat="server" id="btnLogin" onserverclick="LoginClick_Click"></button>

และโค้ดเบื้องหลัง:

protected void LoginClick_Click(object sender, EventArgs e)
    {
        notice.Visible = true;


   //     Response.Redirect("");

    }

ฉันกำลังคลิกปุ่มเพื่อดูว่ามีอะไรปรากฏขึ้นหรือไม่ (แม้แต่หน้าว่างที่เสียหาย [ใช่ ฉันไม่ได้ใส่ข้อคิดเห็นไว้]) แต่ก็ไม่ได้ไป ฉันเชื่อว่านี่เป็นเรื่องง่ายๆ แต่ฉันก็ดิ้นรนอยู่ที่นี่มาเกือบชั่วโมงแล้วและก็ไม่ไปไหน ความสุขของการเขียนโค้ดฉันเดา

แก้ไข:

 <button runat="server" id="btnLogin" OnServerClick="btnLogin_Click" ></button>

นั่นได้ผล ดูเหมือนว่าการใช้อักษรตัวพิมพ์ใหญ่


person Lord Relix    schedule 07.01.2014    source แหล่งที่มา
comment
เพจโพสต์กลับหรือเปล่า? คุณสามารถวางเบรกพอยต์ไว้ที่ตัวจัดการแล้วดูว่าจะหยุดอยู่ตรงนั้นหรือไม่?   -  person Yuriy Galanter    schedule 08.01.2014
comment
stackoverflow.com/questions/1245033/ ตรวจสอบโพสต์นั้น   -  person Exzile    schedule 08.01.2014
comment
ใช่มันเป็นการย้อนกลับ เบรกพอยต์การโหลดหน้าเปิดใช้งานแต่ไม่ใช่เหตุการณ์ของปุ่ม   -  person Lord Relix    schedule 08.01.2014
comment
เพิ่งลองตั้งค่าใน ASPX/CS พื้นฐาน ซึ่งทำงานได้ตามที่ออกแบบไว้ คุณแน่ใจหรือไม่ว่าคุณกำลังคลิกปุ่มที่ถูกต้องซึ่งต่อสายเพื่อแก้ไขตัวจัดการเหตุการณ์ มีการควบคุมอื่นใดอีกบ้างบนเพจ?   -  person Yuriy Galanter    schedule 08.01.2014
comment
มันแปลก. ใช่ ฉันยืนยันแล้ว ฉันเพิ่มปุ่มปกติเพื่อการทดสอบและ postback ก็เกิดขึ้นได้อย่างสมบูรณ์แบบ แปลก.   -  person Lord Relix    schedule 08.01.2014
comment
ฮึ ฉันเชื่อว่ามันเป็นอักษรตัวพิมพ์ใหญ่ OP แก้ไขแล้ว   -  person Lord Relix    schedule 08.01.2014


คำตอบ (2)


คุณต้องระมัดระวังมากขึ้นกับไวยากรณ์ของคุณ

<asp:Button runat="server" id="btnLogin" OnClick="btnLogin_Click" />

รหัสอยู่ข้างหลัง

protected void btnLogin_Click(object sender, EventArgs e)
    {
        notice.Visible = true;
    }
person mason    schedule 07.01.2014
comment
ฉันไม่ได้ใช้ปุ่มในตัวของ ASP มันเป็นปุ่ม HTML ตรง - person Lord Relix; 08.01.2014
comment
เว้นแต่... ฉันควรจะป้อน ‹asp.Button ... ในปุ่ม HTML ปกติหรือไม่ - person Lord Relix; 08.01.2014
comment
คุณได้ระบุคำถามนี้เกี่ยวกับ ASP.NET Web Forms ดังนั้นคุณควรใช้การควบคุมที่มีให้ asp:Button ถูกสร้างขึ้นมาเพื่อการเรียกใช้ฟังก์ชันบนฝั่งเซิร์ฟเวอร์โดยเฉพาะ ยกเว้นในกรณีที่คุณมีเหตุผลเฉพาะในการไม่ใช้ตัวควบคุม ASP.NET ฉันขอแนะนำให้คุณใช้ตัวควบคุมเหล่านี้ - person mason; 08.01.2014
comment
ฉันสามารถใช้ ImageButton ได้ (เป็นรูปภาพ) แต่ฉันสูญเสียเอฟเฟกต์ CSS/JQuery ที่ฉันต้องการ - person Lord Relix; 08.01.2014
comment
@LordRelix คุณสามารถใช้เอฟเฟกต์ CSS และ jQuery กับปุ่ม ASP.NET หรือ ImageButton คุณไม่ควรปล่อยให้สิ่งนั้นหยุดคุณจากการใช้การควบคุมที่ถูกต้อง - person mason; 08.01.2014
comment
จริงหรือ ไม่รู้ว่า. ฉันคิดว่าส่วนใหญ่เป็นการควบคุมแบบคงที่ จะลองดูก็ไม่รู้ว่ามันเป็นไปได้ - person Lord Relix; 08.01.2014
comment
แม้ว่าฉันจะยอมรับว่าควรใช้ WebControls (แทน HtmlControls) หากเป็นไปได้ แต่ก็ไม่มีอะไร 'ผิด' ในการใช้ตัวควบคุม HTML แบบธรรมดาในสถานการณ์ WebForms ซึ่งเป็นสาเหตุที่ทำให้การควบคุมในเนมสเปซ System.Web.UI.HtmlControls มีอยู่ ในบางสถานการณ์ (แอปรุ่นเก่า ฯลฯ) อาจไม่สามารถอัปเกรดทุกอย่างเป็น WebControls ได้ สำหรับ OP - เพื่อขจัดความเป็นไปได้ของปัญหาการใช้อักษรตัวพิมพ์ใหญ่ ให้เชื่อมโยงกิจกรรมของคุณใน Page Init แทน วิธีนั้นจะไม่มีปัญหาในการใช้อักษรตัวพิมพ์ใหญ่ เนื่องจากการประกาศตัวจัดการไม่อยู่ในมาร์กอัป - person sh1rts; 08.01.2014

หากคุณสนใจที่จะใช้ปุ่มอื่นจากตัวควบคุม ASP จริงๆ คุณอาจต้องการกระตุ้นปุ่ม ASP ที่ซ่อนอยู่พร้อมกับฟังก์ชันที่ต้องการโดยใช้จาวาสคริปต์และ jquery แบบอินไลน์

<asp:Button ID="btnLogin" runat="server" Visible="False" />
<button type="button" id="btnFancy" onclick="serverClick();">TextHere</button>

--

<script type="text/javascript">
function serverClick() {
    $('#<%=btnLogin.ClientID%>').click();
    }
</script>

ฉันจะไม่แนะนำสิ่งนี้ แต่ควรจะได้ผลสำหรับคุณ

person cmann83    schedule 07.01.2014