调用错误的事件,同时通过文本框将项目添加到列表框中

时间:2013-05-13 13:20:38

标签: asp.net

enter image description here

我有2 textboxes2 listbox,以及相应的添加按钮。

当我在textbox1中输入一些文本并按下输入时,它会被添加到listbox1中,正如事件Add1所期望的那样。

问题:

  

当我在textbox2中输入一些文本并按Enter键时,它会获得   从事件Add1添加到listbox1中。但它应该加入   来自事件Add2的listbox2。

我在文本框2中输入文本后检查了选项卡索引,对于Add1和Add2按钮,它都是“Zero”。

可以做些什么?如果我在textbox2中输入文本,则在提示输入后应调用Add2而不是Add1。 的更新

   $('#textbox1').keypress(function(event){

       var keycode = (event.keyCode ? event.keyCode : event.which);
           if(keycode == '13'){
         alert('You pressed a "enter" key in textbox1');    
             __doPostBack('<%=btnAdd1.UniqueID %>', '');
      }
   });

   $('#textbox2').keypress(function(event){

      var keycode = (event.keyCode ? event.keyCode : event.which);
      if(keycode == '13'){
    alert('You pressed a "enter" key in textbox2'); 
            __doPostBack('<%=btnAdd2.UniqueID %>', '');
      }

   });

当我使用Add2添加第一个项目然后尝试使用Add1添加时,这也没有帮助。

任何人都可以纠正我的错过吗?

3 个答案:

答案 0 :(得分:0)

您的表单只能有一个"Default" button(在ENTER上触发按钮)

您必须动态更改该属性或使用某些客户端触发使ENTER在当前输入字段上起作用。

答案 1 :(得分:0)

            <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
            <html xmlns="http://www.w3.org/1999/xhtml">
            <head runat="server">
                <title></title>
            </head>
            <body>
                <form id="form1" runat="server">
                <div>
               <center> 
                <table width="50%">
                <tr><td><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Add1" runat="server" onclick="Add1_Click" Text="Add1" />  </td>
                <td><asp:ListBox ID="ListBox1" runat="server"></asp:ListBox></td></tr>
                <tr><td><asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><asp:Button ID="Add2" runat="server" onclick="Add2_Click" Text="Add2" /> </td>// check onclick="Add2_Click" is Add2_Click or Add1_Click
                <td><asp:ListBox ID="ListBox2" runat="server"></asp:ListBox></td></tr>
                </table></center>
                </div>
                </form>
            </body>
            </html>

            C#:   
             protected void Add1_Click(object sender, EventArgs e)
                {
                    ListBox1.Items.Add(TextBox1.Text);
                }
                protected void Add2_Click(object sender, EventArgs e)
                {
                    ListBox2.Items.Add(TextBox2.Text);//check  ListBox2.Items.Add and TextBox2.Text
                }

//i think,you copied Add2 from Add1 .
//you just select Add2  then go to source remove on_click event  again double click Add2.make code for listview2- listview2.items.add(Textbox2.text);

    ![enter image description here][1]

答案 2 :(得分:0)

我在Page_Load中添加了以下代码:

if(!IsPostBack)
{

 TextBox1.Attributes.Add("onkeypress", "javascript:if (event.keyCode == 13) { __doPostBack('" + btnAdd1.UniqueID + "',''); return false; } ");

 TextBox2.Attributes.Add("onkeypress", "javascript:if (event.keyCode == 13) { __doPostBack('" + btnAdd2.UniqueID + "',''); return false; } ")
 }

就像魅力一样!