0
GridViewにTemplateFieldがあり、内部にTextBoxがあります。私は、ユーザーがEnterキーを押して、タブキーと同じようにGridの次のTextBoxに行くことができるコードを見つけました。唯一の問題は、次のTextBoxをスキップして、その後にTextBoxに行くことです。変なことに、Enterを押すたびにTextBoxをスキップします。私はそれを修正するために十分なJavascriptについて知りません。誰かがm yのコードを見ることができますか?GridView TemplateFieldでTextBoxのEnterキーがタブのように機能します
マイJavascriptを:
function tabE(obj, e) {
var e = (typeof event != 'undefined') ? window.event : e;// IE : Moz
if (e.keyCode == 13) { // 9 for Tab and 13 for enter
var ele = document.forms[0].elements;
for (var i = 0; i < ele.length; i++) {
var q = (i == ele.length - 1) ? 0 : i + 2;
if (obj == ele[i]) {
//focus TextBox on next row
ele[q].focus();
break
}
}
e.returnValue = false;
if (typeof event == 'undefined')
e.preventDefault();
}
}
私のGridViewの
<asp:GridView ID="gvPackRegular" AutoGenerateColumns="false" ShowHeaderWhenEmpty="true"
CssClass="GridView" runat="server" Width="100%">
<AlternatingRowStyle CssClass="alt" />
<Columns>
<asp:TemplateField HeaderText="Carton" HeaderStyle-CssClass="GridViewHeader">
<ItemTemplate>
<asp:Label ID="lblPackName" runat="server" Text='<%# Eval("CartonType.Description") %>'></asp:Label>
<asp:Label ID="lblCartonTypeID" runat="server" Text='<%# Eval("CartonType.CartonTypeId") %>'
Visible="false"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Quantity" HeaderStyle-CssClass="GridViewHeader">
<ItemTemplate>
<asp:TextBox ID="txtPackQty" runat="server" Text='<%# Bind("Pack") %>' CssClass="SmallTextbox"
onchange="invalidate();" onfocus="selectTextonFocus(this);" onkeydown="tabE(this,event)"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
ありがとうございました!それは今、完璧に動作します。 – hollyquinn