3つのグリッドビューコントロールの内容を制御するドロップダウンリストがあります。これらはWebパーツで使用されます。ただし、ドロップダウンリストのselectedindexchangedメソッドがイベントを発生させるたびに、依存するグリッドビューのコンテンツがグリッドビューの別のレンダリングを追加します。したがって、これらのグリッドビューのコンテンツは2倍、さらには3倍になります。
私は次のコードを持っています:
-> CreatChildControlsメソッドの場合:
ProfileGrid(_gridProf, _dtProf, _infoObj, _column, _imgColumn, _ddl, _strConn, _id);
Controls.Add(_gridProf);
Controls.Add(new LiteralControl("<br />"));
PhysicalGrid(_gridPhys, _dtPhys, _infoObj, _column, _ddl, _strConn, _id);
Controls.Add(_gridPhys);
Controls.Add(new LiteralControl("<br />"));
LabGrid(_gridLab, _dtLab, _infoObj, _column, _ddl, _strConn, _id);
Controls.Add(_gridLab);
Controls.Add(new LiteralControl("<br />"));
-> SelectedIndexChangedメソッドの場合:
private void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
ProfileGrid(_gridProf, _dtProf, _infoObj, _column, _imgColumn, _ddl, _strConn, _id);
PhysicalGrid(_gridPhys, _dtPhys, _infoObj, _column, _ddl, _strConn, _id);
LabGrid(_gridLab, _dtLab, _infoObj, _column, _ddl, _strConn, _id);
}
-> GridViewコントロールの1つ:
private void ProfileGrid(GridView grid, DataTable dt, InfoAccess infoObj, BoundField column, ImageField imgColumn, DropDownList ddl, string strConn, string id)
{
string query = "exec spr_VITALITY_SCORE '" + id + "', '" + (ddl.SelectedValue == "" ? DateTime.Now.Year.ToString() : ddl.SelectedValue.ToString()) + "'";
infoObj.StrConn = strConn;
dt = infoObj.SQLResult(query);
grid.DataSource = dt;
column.DataField = "SCORE";
column.HeaderText = "Score";
grid.Columns.Add(column);
imgColumn.DataImageUrlField = "VITALITY_COLOR";
imgColumn.DataImageUrlFormatString = "../../Style%20Library/OHImages/{0}";
imgColumn.HeaderText = "Vitality Color";
grid.Columns.Add(imgColumn);
column = new BoundField();
column.DataField = "VITALITY_DEFINITION";
column.HeaderText = "Vitality Definition";
grid.Columns.Add(column);
column = new BoundField();
column.DataField = "REMARKS";
column.HeaderText = "Remarks";
grid.Columns.Add(column);
DesignGrid(_gridProf);
_gridProf.Attributes.Add("Style", "text-align:center;");
}
DesignGridメソッドは、グリッドビューの属性のみを定義します。誰かがこの誤ったレンダリングの問題について私を助けてくれますか?ありがとう。