2013-06-12 40 views
0

,它產生在頁源像FeaturedContent_day3date一個id發現H3標籤的控制和設定的標頭標記的標記如下所示內部文本

<asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" Runat="Server"> 
<div id="pagecontent"> 
<fieldset id="weeklyPnLGoals"> 
     <legend>Weekly PnL Targets with Actual for <%=DateTime.Now.ToString("MMM, yyyy")%></legend> 
      <div id="monthlywrapper" style="width:100%;"> 
        <div id="firstweekwrapper" class="weekcontainer"> 
         <div id="day1" class="daytile daytilefirst"> 
          <h3 id="day1date" class="dateh3" runat="server"></h3><br /> 
          <p id="day1equities"><span class="targettext"> <span class="bluetext">Equities</span> Target PnL:&nbsp;</span><span id="day1equitytargetvalue" class="targettext"></span><br /><span class="actualtext">Actual <span class="bluetext">Equities</span> PnL:&nbsp;</span><span id="day1equityactualvalue" class="actualtext"></span></p> 
          <p id="day1options"><span class="targettext"> <span class="bluetext">Options</span> Target PnL:&nbsp;</span><span id="day1optiontargetvalue" class="targettext"></span><br /><span class="actualtext">Actual <span class="bluetext">Options</span> PnL:&nbsp;</span><span id="day1optionactualvalue" class="actualtext"></span></p> 
          <p id="day1futures"><span class="targettext"> <span class="bluetext">Futures</span> Target PnL:&nbsp;</span><span id="day1futuretargetvalue" class="targettext"></span><br /><span class="actualtext">Actual <span class="bluetext">Futures</span> PnL:&nbsp;</span><span id="day1futureactualvalue" class="actualtext"></span></p> 
         </div> 
         <div id="day2" class="daytile"> 
          <h3 id="day2date" class="dateh3" runat="server"></h3><br /> 
          <p id="day2equities"><span class="targettext"> <span class="bluetext">Equities</span> Target PnL:&nbsp;</span><span id="day2equitytargetvalue" class="targettext"></span><br /><span class="actualtext">Actual <span class="bluetext">Equities</span> PnL:&nbsp;</span><span id="day2equityactualvalue" class="actualtext"></span></p> 
          <p id="day2options"><span class="targettext"> <span class="bluetext">Options</span> Target PnL:&nbsp;</span><span id="day2optiontargetvalue" class="targettext"></span><br /><span class="actualtext">Actual <span class="bluetext">Options</span> PnL:&nbsp;</span><span id="day2optionactualvalue" class="actualtext"></span></p> 
          <p id="day2futures"><span class="targettext"> <span class="bluetext">Futures</span> Target PnL:&nbsp;</span><span id="day2futuretargetvalue" class="targettext"></span><br /><span class="actualtext">Actual <span class="bluetext">Futures</span> PnL:&nbsp;</span><span id="day2futureactualvalue" class="actualtext"></span></p> 
         </div> 
         <div id="day3" class="daytile"> 
          <h3 id="day3date" class="dateh3" runat="server"></h3><br /> 
          <p id="day3equities"><span class="targettext"> <span class="bluetext">Equities</span> Target PnL:&nbsp;</span><span id="day3equitytargetvalue" class="targettext"></span><br /><span class="actualtext">Actual <span class="bluetext">Equities</span> PnL:&nbsp;</span><span id="day3equityactualvalue" class="actualtext"></span></p> 
          <p id="day3options"><span class="targettext"> <span class="bluetext">Options</span> Target PnL:&nbsp;</span><span id="day3optiontargetvalue" class="targettext"></span><br /><span class="actualtext">Actual <span class="bluetext">Options</span> PnL:&nbsp;</span><span id="day3optionactualvalue" class="actualtext"></span></p> 
          <p id="day3futures"><span class="targettext"> <span class="bluetext">Futures</span> Target PnL:&nbsp;</span><span id="day3futuretargetvalue" class="targettext"></span><br /><span class="actualtext">Actual <span class="bluetext">Futures</span> PnL:&nbsp;</span><span id="day3futureactualvalue" class="actualtext"></span></p> 
         </div> 
</div> 
</div> 
</fieldset> 

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load 
    Dim firstdate As DateTime = FirstTradingDayInMonth(DateTime.Now.Date) 
    Dim dayofweeknumber As String = firstdate.Day.ToString() 
    Dim tradingdaysthismonth As New List(Of Date) 
    Dim tempDate As Date = firstdate 
    Do While tempDate.Day < LastTradingDayInMonth(DateTime.Now.Date).Day 

     If tempDate = firstdate Then 
      tradingdaysthismonth.Add(tempDate) 
      tempDate = AddBusinessDays(tempDate) 
     Else 
      tempDate = AddBusinessDays(tempDate) 
      tradingdaysthismonth.Add(tempDate) 
     End If 
    Loop 
    Dim h3Tags As New List(Of HtmlGenericControl) 

    Dim h3Tagname As String = "day" & dayofweeknumber & "date" 


    Dim htmlcontrol As HtmlGenericControl = TryCast(Me.Page.FindControl("firstweekwrapper").FindControl(h3Tagname), HtmlGenericControl) 
    htmlcontrol.InnerText = firstdate.ToLongDateString() 
End Sub 

回答

1

根據你發佈的錯誤,它會出現你正在混合c#字符串連接與vb字符串連接。這:

Dim h3Tagname As String = "FeaturedContent_day" + dayofweeknumber + "date" 

應該是:

Dim h3Tagname As String = "FeaturedContent_day" & dayofweeknumber & "date" 

這可能不是解決NullReferenceException異常,但它至少一個起點。

編輯

你需要找到你ContentPlaceHolder第一,這應有助於:

Dim cph As ContentPlaceHolder = TryCast(Master.FindControl("FeaturedContent"), ContentPlaceHolder) 
Dim htmlcontrol As HtmlGenericControl = TryCast(cph.FindControl(h3Tagname), HtmlGenericControl) 
+0

不正確,兩個版本都產生day3date +在vb.net以及C#中工作 – dinotom

+0

有趣。我使用您的版本時出現轉換錯誤。 – ethorn10

+0

所以這個標記位於名爲「FeaturedContent」的用戶控件中?我們真的在沒有任何相關代碼的情況下抓住這些吸管(除了標記)... – ethorn10

0

第29行:

Dim mainControl As HtmlGenericControl = DirectCast(Page.FindControl("monthlywrapper") 

在您的標記中,該DIV未設置爲runat="server",因此服務器端ca沒有「看到」它。

+0

asp.net 4.5爲什麼,這不應該事 – dinotom

+0

你能發佈更多的代碼,這將有助於在試圖解決問題了嗎? –

+0

看帖子編輯請 – dinotom

1

好了,問題是,FindControl已不通過命名容器滲透。換句話說,Me.Page.FindControl(「firstweekwrapper」)不會返回DIV,因爲Me.Page在母版頁中開始搜索,並在它到達內容佔位符時停止查找;因此爲null(Nothing)。

試試這個:

Dim FeaturedContent As ContentPlaceHolder = TryCast(Page.Master.FindControl("FeaturedContent"), ContentPlaceHolder) 

Dim h3Tagname As String = "day" & dayofweeknumber & "date" 

Dim htmlcontrol As HtmlGenericControl = TryCast(FeaturedContent.FindControl("firstweekwrapper").FindControl(h3Tagname), HtmlGenericControl)`