2014-06-26 53 views
0

我試圖拉入填充在gridview中嵌入的templatefield文本框中的值。我試圖用幾種不同的方法做到這一點,但不斷收到錯誤消息。我能夠從嵌入在同一個gridview中的templatefield下拉控件獲取值。無法檢索gridview中的templatefield文本框的值

標記:

<asp:TemplateField HeaderText="Renewal Date" > 
    <ItemTemplate> 
      <ajaxToolkit:CalendarExtender ID="cexRenewalDate" runat="server" TargetControlID="txtRenewalDate" PopupPosition="TopRight" 
       Format="MM/dd/yyyy" PopupButtonID="btnimgCalendar" /> 
      <asp:TextBox ID="txtRenewalDate" runat="server" CssClass="RenewalDateTextBoxStyle" 
       onKeyPress="javascript: return false;" onPaste="javascript: return false;"/> 
      <asp:ImageButton ID="btnimgCalendar" runat="server" ImageUrl="~/Images/Calendar.png" CssClass="CalendarImageButtonStyle"/> 
    </ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Action"> 
    <ItemTemplate> 
     <asp:DropDownList ID="drpOFActions" runat="server" CssClass="ActionDropDownStyle"/> 
     <asp:LinkButton ID="lnkOFCommit" runat="server" Text=" Commit " OnClick="lnkCommitOF_Click" CssClass="CommitLinkButtonStyle" 
      OnClientClick="return confirm('Are you sure you want to complete this action?');" 
      CommandArgument='<%# Container.DataItemIndex %>' /> 
    </ItemTemplate> 
</asp:TemplateField> 

代碼後面:

Dim temp As String = CType(grdGeneratedOrderForms.Rows(rowIndex).FindControl("txtRenewalDate"), TextBox) 

這將引發 'System.Web.UI.Control' 不能被轉換爲 'System.Windows.Forms.TextBox' 錯誤。

我也是在別人的建議下使用這種嘗試:

Dim temp As String = TryCast(grdGeneratedOrderForms.Rows(rowIndex).FindControl("txtRenewalDate"), System.Web.UI.Control.TextBox) 

這將拋出類型「System.Web.UI.Control.TextBox」沒有定義的錯誤。

然而,當我使用下面拉我的下拉列表控件的值,我覺得沒有問題:

Dim Action As Integer = TryCast(grdGeneratedOrderForms.Rows(rowIndex).FindControl("drpOFActions"), DropDownList).SelectedValue 

這裏是我的命名空間聲明:

Imports Oracle.DataAccess.Client 
Imports System.IO 
Imports System.Windows.Forms 
Imports Aspose.Words 
Imports Aspose.Words.Tables 
Imports Ionic.Zip 

任何想法,將不勝感激。 ..謝謝!

回答

1

試試這個。我認爲你的使用陳述中有名稱空間衝突

Dim temp As String = CType(grdGeneratedOrderForms.Rows(rowIndex).FindControl("txtRenewalDate"), System.Web.UI.WebControls.TextBox).Text 
+0

謝謝Kiran。這也給我類型'System.Web.UI.Control.TextBox'未定義的錯誤。我在原始文章中添加了我的名稱空間聲明。 – StephenT

+0

你可以調試代碼並檢查什麼是grdGeneratedOrderForms.Rows(rowIndex).FindControl(「txtRenewalDate」)的值是什麼? –

+0

你能指導我如何做到這一點?我一直在試圖弄清楚如何在調試時查看GridView中的對象值,但沒有運氣。對不起,如果這是初學者的東西。 – StephenT

相關問題