私は入力時にいくつかのデータをデータベースに送る単一のテキストボックスを持つフォームを持っています。データはリピータコントロールのテキストボックスの下に表示されます。入力データは、そのテキストボックスのTextChangedイベントでリピータにデータをバインドすることによって、フォーム上にすぐに表示されます。このコードビヘイビアはどのようにしてより良い書き方ができますか?
CodeBehindでは、BindRepeaterメソッドを2回呼び出します。新しいページを読み込むたびに1回、テキストボックスのTextChangedイベントで1回呼び出します。
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();
}
}
なぜ2か所から電話したくない特別な理由はありますか?コードは私には大丈夫です! – DavidGouge
おそらくhttp://codereview.stackexchange.com/に所属しています。 –
@DavidGouge:BindRepeaterが呼び出される可能性のある場所がさらにあるかもしれませんが、これは正常ですか? – Animesh