![](/img/trans.png)
[英]How to get the clientid of the control which is placed inside the Edit item template of the gridview in javascript
[英]Textbox not recognized in Gridview Edit Item Template
我正在嘗試使用日歷控件在編輯模式下填充gridview單元格中的文本框。
錯誤在於此行
<a href="javascript:OpenPopupPage('Calendar.aspx','<%= txtGvEditTeDate.ClientID %>','<%= Page.IsPostBack %>');">
它無法識別文本框。
編譯錯誤
編譯器錯誤消息:CS0103:當前上下文中不存在名稱“txtGvEditTeDate”
來源錯誤:
<EditItemTemplate>
<asp:TextBox ID="txtGvEditTeDate" runat="server" onfocus="blur();"
Text='<%# Bind("TimeEntryDate", "{0:d}") %>'>
</asp:TextBox>
<a href="javascript:OpenPopupPage('Calendar.aspx','<%= txtGvEditTeDate.ClientID %>','<%= Page.IsPostBack %>');">
<img src="images/icon-calendar.gif" border="0" align="middle" ></a>
</EditItemTemplate>
編輯
我將runat =“server”添加到<a>
,現在我沒有收到錯誤,但是當在日歷控件中選擇了一個日期時,它沒有插入到txtGvEditTeDate文本框中。
考慮將其<a id="r1" runat="server" />
然后,在RowDataBound或RowEditing中,執行:
var ctl = e.Row.FindControl("txtGvEditTeDate");
var link = e.Row.FindControl("r1");
link.href = "javascript ...";
並從服務器分配。 此外,您可能需要:e.Row.Cells []引用單元格,因為行查找控件有時對我沒用。
編輯:如果您在將日期映射回編輯控件時遇到問題,那可能是因為每個控件都映射了附加到gridview的ID(查看源代碼以查看我的意思),因此,txtGvEditTeDate無法引用該控件,所以你將不得不想出一個解決方法。 一種方法可能是將文本框引用存儲在客戶端javascript變量中,該變量可以在鏈接href語句中設置。 這變得更加復雜。
由於textBox位於EditItemTemplate中,因此您無法像這樣訪問它。 你必須要么在數據綁定時使用findcontrol,要么依靠javascript來完成工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.