promotion image of download ymail app
Promoted

C# FormView 內TextBoxt換行問題

想要寫入資料庫時就將ENTER紀錄轉換成 <br/>

事件寫在 FormView_DataBound事件

protected void DataBound(object sender, EventArgs e)

{

TextBox LB = (TextBox)FormView1.FindControl("Title_ContentTextBox") as TextBox;

LB.Text = LB.Text.Replace("\r\n", "<br/>");

}

執行時會出現

並未將物件參考設定為物件的執行個體。

描述: 在執行目前 Web 要求的過程中發生未處理的例外狀況。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

例外狀況詳細資訊: System.NullReferenceException: 並未將物件參考設定為物件的執行個體。

求解~~~

7 個解答

評分
  • 6 年前

    到下面的網址看看吧

    ▶▶http://candy5660601.pixnet.net/blog

    • Commenter avatar登入以對解答發表意見
  • 6 年前

    到下面的網址看看吧

    ▶▶http://candy5660601.pixnet.net/blog

    • Commenter avatar登入以對解答發表意見
  • 6 年前

    參考下面的網址看看

    http://phi008780520.pixnet.net/blog

    • Commenter avatar登入以對解答發表意見
  • 6 年前

    參考下面的網址看看

    http://phi008780520.pixnet.net/blog

    • Commenter avatar登入以對解答發表意見
  • 您覺得這個回答如何?您可以登入為回答投票。
  • John
    Lv 7
    6 年前

    <br/> 語法係正確。從未見過沒有<br>而</br>可以正確存在。

    我會咁用。

    TextBox LB = (TextBox)FormView1.FindControl("Title_ContentTextBox");

    LB.Text = LB.Text.Replace("\r\n", "<br/>");

    基本上沒有錯。

    從System.NullReferenceException裡,我估"Title_ContentTextBox"數值係null所以有以上問題。簡單測試,刪除所有code in DataBound,試吓有無嘢show up。

    如果"Title_ContentTextBox" 有 TextMode="MultiLine" 咁以上用法係多餘。除非用於 Label

    Label lbl = (Label) fmvTest.FindControl("Title_ContentTextBox");

    lbl.Text = lbl.Text.Replace("\n", "<br/>");

    <asp:Label runat="server" ID="Title_ContentTextBox" Text='<%# Eval("title") %>' />

    字數所限唔會有補充。

    • Commenter avatar登入以對解答發表意見
  • 匿名使用者
    6 年前

    你把中斷點設在LB.Text = LB.Text.Replace("\r\n", " "); 看看,

    看FindControl有沒有成功,沒有的話,LB可能是null,那操作就會錯

    • Commenter avatar登入以對解答發表意見
  • 6 年前

    我想大概是 <br/> 應該是 </br> 這樣才對吧?

    參考資料: 自己
    • Commenter avatar登入以對解答發表意見
還有問題?馬上發問,尋求解答。