- PR -

値の変更をデータグリッドへ反映させる方法

投稿者投稿内容
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-01-16 15:42
はじめまして

参考までに
例えば1列目に表示されているトン数に2列目で入力された単価を掛けて3列目に金額を
表示する場合なら以下の方法でクライアント側の処理できます。


「.aspx」部分
-------------------------------------------------------------------------
<script language="javascript">
function CalcPrice( ton, EditTanka, EditPrice )
{
price = ton * EditTanka.value;
if( price >= 0 )
EditPrice.value = Math.floor(price);
else
EditPrice.value = Math.ceil(price);
}
</script>
-------------------------------------------------------------------------


「.cs」部分
-------------------------------------------------------------------------
private System.Web.UI.Control GetContrl( System.Web.UI.ControlCollection Controls, Type contrlType )
{
foreach( System.Web.UI.Control ctrl in Controls )
{
if( ctrl.GetType() == contrlType )
return ctrl;
}
return null;
}

private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
// 単価の項目に金額を計算するJAVAスプリクトを設定
string ton = e.Item.Cells[0].Text;
TextBox editTanka = (TextBox)GetContrl( e.Item.Cells[1].Controls
                          ,typeof( TextBox ));

TextBox editPrice = (TextBox)GetContrl( e.Item.Cells[2].Controls
                          ,typeof( TextBox ));

if( editTanka != null && editPrice != null )
{
editTanka.Attributes["onChange"]
           = string.Format(
            "CalcPrice( {0}, this, document.forms[0].{1} )"
            , ton
, editPrice.ClientID );
}
}
-------------------------------------------------------------------------

スキルアップ/キャリアアップ(JOB@IT)