[英]Accessing asp:Textbox value inside an asp:Datalist control using Javascript
[英]Accessing ASP textbox inside gridview for JS script
我有一個asp:Gridview,我希望我的JS腳本在聚焦單元格時觸發模式。 我的aspx文件中包含以下內容:
<asp:GridView ID="gridviewSLds" runat="server" CellPadding="0" ForeColor="#333333" GridLines="Both" AutoGenerateColumns="False" OnRowCreated="gridviewSLds_RowCreated">
<AlternatingRowStyle BackColor="White" />
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
<RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<SortedAscendingCellStyle BackColor="#FDF5AC" />
<SortedAscendingHeaderStyle BackColor="#4D0000" />
<SortedDescendingCellStyle BackColor="#FCF6C0" />
<SortedDescendingHeaderStyle BackColor="#820000" />
<Columns>
<asp:TemplateField ItemStyle-BorderWidth="0">
<ItemTemplate>
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("Id") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="item" HeaderText="Metric" SortExpression="item" ReadOnly="false" />
<asp:TemplateField HeaderText="Item">
<ItemTemplate>
<asp:TextBox onfocusin="select()" runat="server" Text='<%# Bind("item") %>'
ID="txtfocus" AutoPostBack="true"></asp:TextBox>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
</asp:GridView>
我的腳本如下:
var usrfocustxt = document.getElementById('<%txtfocus.item%>');
itemtypetxt.onfocus = function () {
modal.style.display = "block";
}
但是它告訴我在當前上下文中不存在名稱“ txtfocus”。 我究竟做錯了什么?
您做錯了幾件事。 首先,如果您想在JavaScript中使用ID,則應按以下方式使用它:
var usrfocustxt = document.getElementById('<%= txtfocus.ClientID %>');
但這仍然會給您錯誤“ txtfocus”在當前上下文中不存在。
因為GridView(以及重復數據的其他控件)將為TextBox提供唯一的名稱和ID,所以它不會在頁面上多次出現。 如果查看HTML源代碼,您可能已經看到TextBox HTML代碼現在看起來像這樣:
<input name="ctl00$mainContentPane$rptr$ctl05$txtfocus" id="mainContentPane_rptr_txtfocus_5" type="text">
名稱和ID已使用索引號和其他數據進行了修改,以使其唯一。 因此,要找到正確的TextBox,像這樣調用模式彈出功能要容易得多。
<asp:TextBox ID="txtfocus" runat="server" onfocus="focusTextBox(this.id)" class="modalpopup"></asp:TextBox>
或者,您可以使用jQuery和類名將函數綁定到TextBox。
<script type="text/javascript">
$(document).ready(function () {
$('.modalpopup').focus(function () {
alert(this.id);
});
});
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.