对于我正在使用的gridview,我在ItemTemplate中有一个文本框,我想看看是否有更有效的方法来获取第一个和最后一个索引值,但最终会填充多个行gridview。在下面的gridview中,我正在评估的文本框是txtPercentage。
<asp:GridView ID="gvTest" AutoGenerateColumns="False" runat="server"
GridLines="None" CssClass="table table-striped table-hover table-constant-values"
ShowFooter="true" OnRowDataBound="gvTest_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="Something" >
<ItemTemplate>
Something
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Whatever">
<ItemTemplate>
Whatever
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Percentage" SortExpression="Percentage">
<ItemTemplate>
<asp:TextBox ID="txtPercentage" runat="server" Text='<%# Eval("Percentage","{0:N8}") %>' class="calculate"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
对于jQuery方面,我可以使用它来获取txtPercentage文本框的索引。
var i = 1;
var txtFirstPercentageIndex;
var txtLastPercentageIndex;
//works
$(".calculate").each(function (calindex, value)
{
if (i == 1)
{
txtFirstPercentageIndex = calindex;
i = 2;
}
txtLastPercentageIndex = calindex;
});
有更有效的方法吗?我认为下面这样的事情可能会更好。但是,它没有工作。
//Doesn't work
txtFirstPercentageIndex = $(".calculate").first().index();
txtLastPercentageIndex = $(".calculate").last().index();
提前感谢任何帮助/提示。
答案 0 :(得分:1)
试试这个,
lastIndex = $(".calculate").length-1;
if(lastIndex >= 0)
firstIndex = 0;