La gestione della pressione di un tasto è un evento lato client quindi se devi richiamare due funzioni diverse potresti:
- preparare due pulsanti con i relativi gestori degli eventi click che eseguono due funzioni diverse una per un textbox e una per l'altro;
- disattivare il pulsante predefinito con:
<form id="form1" runat="server" defaultbutton="">
- gestire in javascript l'evento di pressione del tasto enter per ciascuna textbox, inattivando il submit predefinito:
<script>
function keyPress(id){
if (window.event.keyCode==13)
{
window.event.keyCode=0;
if(id == 'b1')
{
document.all("b1").click();
}
else if (id == 'b2')
{
document.all("b2").click();
}
}
}
</script> - associare l'evento onkeypress alle TextBox in questo modo:
t1.Attributes.Add("onkeypress", @"keyPress('b1')");- nascondere la visibilità dei "pulsanti di appoggio" con l'aiuto degli stili:
b1.Attributes.Add("style", @"visibility:hidden;");
ecco l'esempio completo:
protected void Page_Load(object sender, EventArgs e)
{
t1.Attributes.Add("onkeypress", @"keyPress('b1')");
t2.Attributes.Add("onkeypress", @"keyPress('b2')");
b1.Attributes.Add("style", @"visibility:hidden;");
b2.Attributes.Add("style", @"visibility:hidden;");
} <title></title>
<script>
function keyPress(id){
if (window.event.keyCode==13)
{
window.event.keyCode=0;
if(id == 'b1')
{
document.all("b1").click();
}
else if (id == 'b2')
{
document.all("b2").click();
}
}
}
</script>
</head>
<body>
<form id="form1" runat="server" defaultbutton="">
<div>
<asp:TextBox ID="t1" runat="server"></asp:TextBox>
<asp:Button ID="b1" runat="server" Text="b1" onclick="b1_Click" />
<asp:TextBox ID="t2" runat="server"></asp:TextBox>
<asp:Button ID="b2" runat="server" Text="b1" OnClick="b2_Click" />
.. Prendilo come spunto, spero ti sia di aiuto.