簡體   English   中英

Gridview編輯項模板中無法識別文本框

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM