Я разрабатываю приложение asp.net, где у меня есть страница контента, полученная на главной странице, и внутри страницы у меня есть элемент управления gridview, где у меня есть некоторые связанные поля и текстовое поле для оценки и вычислить оставшиеся. Я использую следующий код javascript.asp.net gridview textbox focus с помощью javascript
<td colspan="4">
<div id="divGrid" style="width: 890px; height: 200px; overflow: auto">
<asp:GridView ID="CustomerGrid" runat="server" BackColor="White" AutoGenerateColumns="False"
BorderColor="#336666" BorderStyle="Double" BorderWidth="3px" CellPadding="4"
GridLines="Horizontal" Width="920px">
<RowStyle BackColor="White" ForeColor="#333333" />
<%-- <HeaderStyle CssClass="HeaderFreeze" />--%>
<Columns>
<asp:BoundField DataField="Ref_No" HeaderText="Deal/Transfer Ref # " >
<HeaderStyle Font-Names="Verdana" Font-Size="11px" />
<ItemStyle Font-Names="Verdana" Font-Size="11px" Width="180px" ForeColor="Blue" Font-Bold="true" />
</asp:BoundField>
<asp:BoundField DataField="Settlement_Date" HeaderText="Settlement Date" >
<HeaderStyle Font-Names="Verdana" Font-Size="11px" />
<ItemStyle Font-Names="Verdana" Font-Size="11px" />
</asp:BoundField>
<asp:BoundField DataField="Settlement_Amount" HeaderText="Settlement Amt" >
<HeaderStyle Font-Names="Verdana" Font-Size="11px" />
<ItemStyle Font-Names="Verdana" Font-Size="11px" />
</asp:BoundField>
<asp:BoundField DataField="Interest_Rate" HeaderText="Interest Rate" >
<HeaderStyle Font-Names="Verdana" Font-Size="11px" />
<ItemStyle Font-Names="Verdana" Font-Size="11px" />
</asp:BoundField>
<asp:BoundField DataField="PDealerName" HeaderText="Primary Dealer" >
<HeaderStyle Font-Names="Verdana" Font-Size="11px" />
<ItemStyle Font-Names="Verdana" Font-Size="11px" />
</asp:BoundField>
<asp:BoundField DataField="PD_Price" HeaderText="PD Price" >
<HeaderStyle Font-Names="Verdana" Font-Size="11px" />
<ItemStyle Font-Names="Verdana" Font-Size="11px" />
</asp:BoundField>
<asp:TemplateField HeaderText="FaceValue">
<ItemTemplate>
<asp:Label ID="LBLFaceValue" runat="server" Text='<%# Eval("Face_Value") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle Font-Names="Verdana" Font-Size="11px" />
<ItemStyle Font-Names="Verdana" Font-Size="11px" />
</asp:TemplateField>
<%-- <asp:BoundField DataField="Face_Value" HeaderText="Face Value" >
<HeaderStyle Font-Names="Verdana" Font-Size="11px" />
<ItemStyle Font-Names="Verdana" Font-Size="11px" />
</asp:BoundField>--%>
<asp:BoundField DataField="Available" HeaderText="Available" >
<HeaderStyle Font-Names="Verdana" Font-Size="11px" />
<ItemStyle Font-Names="Verdana" Font-Size="11px" />
</asp:BoundField>
<asp:TemplateField HeaderText="Value">
<ItemTemplate>
<asp:TextBox ID="txtValue" runat="server" Width="100px" onblur="CalculateTotals();"></asp:TextBox>
</ItemTemplate>
<HeaderStyle Font-Names="Verdana" Font-Size="11px" />
<ItemStyle Font-Names="Verdana" Font-Size="11px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Remaining">
<ItemTemplate>
<asp:Label ID="lblRemaining" runat="server" Text=""></asp:Label>
</ItemTemplate>
<HeaderStyle Font-Names="Verdana" Font-Size="11px" />
<ItemStyle Font-Names="Verdana" Font-Size="11px" />
</asp:TemplateField>
<asp:BoundField DataField="Transaction_Type" HeaderText="T" Visible="false">
<HeaderStyle Font-Names="Verdana" Font-Size="11px" />
<ItemStyle Font-Names="Verdana" Font-Size="11px" />
</asp:BoundField>
</Columns>
<FooterStyle BackColor="White" ForeColor="#333333" />
<PagerStyle BackColor="#336666" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#339966" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#336666" Font-Bold="True" ForeColor="White" />
</asp:GridView>
</div>
</td>
<script type="text/javascript">
function CalculateTotals() {
var gv = document.getElementById("<%= CustomerGrid.ClientID %>");
var tb = gv.getElementsByTagName("input");
var lb = gv.getElementsByTagName("span");
var sub = 0;
var total = 0;
var indexQ = 1;
var indexP = 0;
for (var i = 0; i < tb.length; i++) {
if (tb[i].type == "text") {
sub = parseFloat(lb[indexP].innerHTML) - parseFloat(tb[i].value);
if (sub < 0)
{
alert("Exceeding from the face value...");
return;
tb[i].focus();
//return;
}
if (isNaN(sub)) {
lb[i + indexQ].innerHTML = "";
sub = 0;
}
else {
lb[i + indexQ].innerHTML = sub;
}
indexQ++;
indexP = indexP + 2;
total += parseFloat(sub);
}
}
}
</script>
Проблема заключается в том, что у меня есть условие, что входное значение не может превышать от лица Value..if превышает он показывает alert..I хочет показать ошибку и фокус должен вернуться к элементу управления текстового поля в том, что определенной строки. Каким-то образом его не настраивает фокус на управление текстовым полем конкретной строки.
просто проверьте область, где мне нужна модификация.
if (sub < 0)
{
alert("Exceeding from the face value...");
return;
tb[i].focus();
//return;
}
Любые предложения?
Darn..what в overlook..thanks Иосии :) – user239684
@ user239684 - добро пожаловать! –