私は以下の問題を抱えています。本当にそれを修正する方法はわかりません。
私はgrid view
を持っています。列の1つはtemplate field
(テキストボックス)です。グリッドビューは、8
の行で構成されています。私が何をするかは、ユーザーがテキストボックスにデータを入力するたびに、最後のテキストボックス(enabled = falseを設定します)に合計を挿入します。テキストボックスのデータ入力をいくつかの方法で合計し、イベントで呼び出しますtext changed
。しかし、テキストボックスに数値を入力してから、Tab in the keyboard
をクリックするか、マウスカーソルを使用して次のボックスに移動します。フォーカスが失われ、マウスカーソルを再度入力する必要があります。
私は問題を解決するために次の方法を試みますが、無駄です。
foreach (GridViewRow r in gv_Evaluation.Rows)
{
((RadTextBox)r.Cells[3].FindControl("txt_evaluateWeights")).Attributes.Add("blur", "calc()");
}
マイページロードでは、これはまったく機能しません。
protected void txt_evaluateWeights_TextChanged(object sender, EventArgs e)
{
calc();
((TextBox)sender).Focus();
}
この方法では、データを入力するために、以前のテキストボックス(私はすでに行っているものを意味)ではない私はフォーカスをしたいテキストボックスにフォーカスを戻します。
EDIT:
マイカルク方法:サーバー側のポストバックを使用してそれをやって
private void calc()
{
float sum = 0;
for (int i = 0; i < 7; i++)
{
RadTextBox txt1 = (RadTextBox)gv_Evaluation.Rows[i].Cells[3].FindControl("txt_evaluateWeights");
int weight;
bool result = Int32.TryParse(txt1.Text, out weight);
if (result)
{
sum += weight;
}
}
double percentage;
percentage = Math.Round((sum/100) * 100, 2);
RadTextBox txt3 = (RadTextBox)gv_Evaluation.Rows[7].Cells[3].FindControl("txt_evaluateWeights");
txt3.Text = percentage.ToString();//string.Format("{0:0.0%}", percentage.ToString());
}
を助け
GridViewの
ができていますあなたの 'calc'を投稿してください機能も? – naveen
大丈夫............ –
ポストバックしてサーバ側で合計を計算したいのですか、それともクライアント側で実行しますか?また、ページングが有効になっていて、クライアント側に行の一部がまったく存在しない場合の問題を考えましたか? 「最後のテキストボックスに合計を入れる」とはどういう意味ですか、行の最後のTextBoxまたはf.e.フッターに? –