2012-02-18 68 views
0

我有一個表單,它有一個單擊文本框,在按下Enter鍵後將一些數據發送到數據庫。數據顯示在中繼器控制中的文本框下方。通過在該文本框的TextChanged事件中將數據綁定到中繼器,立即在窗體上顯示輸入數據。這段代碼如何寫得更好?

在CodeBehind中,我調用了兩次BindRepeater方法,一次是在每次新的頁面加載時以及一次在文本框的TextChanged事件中。

這怎麼可以重寫調用BindRepeater只有一次,仍然實現相同的效果?

protected void Page_Load(object sender, EventArgs e) 
{  
    if (!this.IsPostBack) 
    { 
     BindRepeater(); 
    } 
} 

protected void BindRepeater() 
{ 
    // data retrieval 
    // repeater binding 
} 

protected void CreateData(string newdata) 
{ 
    // data insert 
} 

protected void TextBox1_TextChanged(object sender, EventArgs e) 
{ 
    if (TextBox1.Text != string.Empty) 
    { 
     string _newData = TextBox1.Text.Trim(); 
     CreateData(_newData); 
     BindRepeater(); 
    } 
} 
+0

爲什麼你不想從兩個地方打電話的任何特定原因?代碼看起來對我好! – DavidGouge 2012-02-18 18:45:38

+2

可能屬於http://codereview.stackexchange.com/ – 2012-02-18 18:45:48

+0

@DavidGouge:這是否正常?即使可能有更多的地方可能會調用BindRepeater? – Animesh 2012-02-18 18:47:20

回答

1

使用在文本更改事件後觸發的事件來執行綁定。您現在可以將其從頁面加載事件中刪除。

+0

我在Page_Load事件中調用它,以便在首次加載頁面時顯示現有數據。 – Animesh 2012-02-18 18:50:07

+0

它仍然會在其他事件中調用 – 2012-02-18 18:51:58

+0

對不起,我沒有明確如何去做這件事。你可以添加一些僞代碼嗎? – Animesh 2012-02-18 18:56:37