PC Review


Reply
Thread Tools Rate Thread

Button not appearing in DataGrid column

 
 
stainless
Guest
Posts: n/a
 
      27th Oct 2011
I have been attemting to add a button to the 4th column of a DataGrid
but each time the web page is displayed, the button is not there. When
defining the 4th column initially, I have not placed any value within
it and have added the button after databindinding the datagrid to a
dataset with 4 columns (including the empty 4th column). The resultant
HTML for the DataGrid is below:

<div id="PegasusDataGrid" name="PegasusDataGrid" style="Z-INDEX: 107;
LEFT: 208px; POSITION: absolute; TOP: 200px; ">
<div style="OVERFLOW-Y: auto">
<table class="HeaderStyle" bordercolor="DarkGray" rules="all"
style="table-layout:fixed;border-style:Solid;border-
collapse:collapse;background-color:#CC0000;" cellpadding="2"
cellspacing="0" width="673">
<tr width="673">
<td width="140px"><font color="White"><b>Database</b></font></td>
<td width="150px"><font color="White"><b>Type</b></font></td>
<td width="300px"><font color="White"><b>Table Name</b></font></
td>
<td width="100px"><font color="White"><b>Select</b></font></td>
</tr>
</table>
<div style="OVERFLOW-Y: auto; HEIGHT: 360px; WIDTH: 690px"
style="OVERFLOW-Y: auto; HEIGHT: 360px; WIDTH: 690px; OVERFLOW-Y:
auto">
<table ID="PegasusDataGridTable" bordercolor="DarkGray"
rules="all" style="TABLE-LAYOUT: fixed; BORDER-STYLE: Solid; BORDER-
COLLAPSE: collapse" cellpadding="2" cellspacing="0" width="673">
<tbody>
<tr ID="PegasusDataGrid_tbl0_sub0_row0" class="NormalStyle">
<td width="140px">DCRS</td>
<td width="150px">Control</td>
<td width="300px">TCPR009A_CONTROL</td>
<td width="100px">&nbsp;</td>
</tr>
<tr ID="PegasusDataGrid_tbl0_sub0_row1" class="NormalStyle"
style="background-color:WhiteSmoke;border-style:NotSet;">
<td>DWOP</td>
<td>Control</td>
<td>TWO036A_CONTROL</td>
<td>&nbsp;</td>
</tr>
<tr ID="PegasusDataGrid_tbl0_sub0_row2" class="NormalStyle">
<td>DD2D</td>
<td>Control</td>
<td>TD2D021A_CONTROL</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>


My code to add the button to the 4th column of every row is below:

for (int iRow=0; iRow<PegasusReportsGrid.Items.Count; iRow++)
{
string strDatabaseName =
PegasusReportsGrid.Items[iRow].Cells[0].Text;
string strType = PegasusReportsGrid.Items[iRow].Cells[1].Text;
string strTableName =
PegasusReportsGrid.Items[iRow].Cells[2].Text;

System.Web.UI.WebControls.ImageButton bSelect = new
System.Web.UI.WebControls.ImageButton();
bSelect.ID = "SelectButton-"+strDatabaseName+"-"+strType
+"-"+strTableName;
bSelect.Command += new CommandEventHandler(UpdateSelected);
bSelect.ImageUrl = "images/button-select-up.jpg";
//bSelect.Attributes["onclick"] =
"javascript:ShowHide('DataGridLabel','hidden');";
bSelect.Visible = true;
//bSelect.DataBind();
PegasusReportsGrid.Items[iRow].Cells[3].Controls.Add(bSelect);
}


It is definitley stepping through this code OK and processes the logic
for each row found (in this case, 3 rows). I have tried this with and
without the databind (commented out above).

It looks ok to me and, indeed, the code does not fail, but the button
is not added. Any ideas?

Just for extra help, the initial code to build the grid from the data
is below (reformattedTableList has 4 columns, the 4th being called
"Select"):

PegasusReportsGrid.FixedHeader = true;
PegasusReportsGrid.TableLayoutFixed = true;
PegasusReportsGrid.ID = "ReportsTable";
PegasusReportsGrid.HeaderStyle.CssClass = "HeaderStyle";
PegasusReportsGrid.ItemStyle.CssClass = "NormalStyle";
PegasusReportsGrid.AlternatingItemStyle.CssClass = "NormalStyle";
PegasusReportsGrid.AlternatingItemStyle.BackColor =
Color.WhiteSmoke;
//PegasusReportsGrid.HeaderStyle.BackColor = Color.Red;
PegasusReportsGrid.HeaderStyle.Font.Bold = true;
PegasusReportsGrid.HeaderStyle.BorderColor = Color.DarkGray;
PegasusReportsGrid.BorderColor = Color.DarkGray;
PegasusReportsGrid.Width = Unit.Pixel(totalWidth);
PegasusReportsGrid.Height = Unit.Pixel(360);
PegasusReportsGrid.CellPadding = 2;
PegasusReportsGrid.CellSpacing = 0;

PegasusReportsGrid.GridLines = GridLines.Both;
PegasusReportsGrid.HeaderStyle.BorderStyle =
System.Web.UI.WebControls.BorderStyle.Solid;
PegasusReportsGrid.BorderStyle =
System.Web.UI.WebControls.BorderStyle.Solid;

PegasusReportsGrid.DataSource =
reformattedTableList.Tables[0].DefaultView;
PegasusReportsGrid.DataBind();
 
Reply With Quote
 
 
 
 
stainless
Guest
Posts: n/a
 
      27th Oct 2011
Oh, and sorry.... using .Net Framework 1.1
 
Reply With Quote
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off



Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 01:44 PM.