我正在进行一个项目,在这个项目中,我需要通过包含一个ImageButton的代码背后来创建一个数据网格;我已经在CodeProject上找到了我需要的东西,但是我唯一的问题是当我在运行时运行代码时,当我试图通过Datagrid的ItemDataBound方法找到控制时,我会得到以下异常
找到多个ID为“uxPlusMinusImageButton”的控件。FindControl要求控件具有唯一的ID。
这是我的密码
DataGridPopulateMethod
private void PopulateDataGrid()
{
TemplateColumn plusMinusContractImage = new TemplateColumn();
plusMinusContractImage.ItemTemplate = new PlusMinusColumn("uxPlusMinusImageButton");
uxSummaryInfoDataGrid.ItemDataBound += new DataGridItemEventHandler(uxSummaryInfoDataGrid_ItemDataBound);
uxSummaryInfoDataGrid.DataSource = contracts;
uxSummaryInfoDataGrid.Columns.Add(new BoundColumn() { HeaderText = "ID", DataField = "ColumnID", Visible = false });
uxSummaryInfoDataGrid.Columns.Add(plusMinusContractImage);
uxSummaryInfoDataGrid.Columns.Add(new BoundColumn() { HeaderText = "Title 1", DataField = "Column1" });
uxSummaryInfoDataGrid.Columns.Add(new BoundColumn() { HeaderText = "Title 2", DataField = "Column2" });
uxSummaryInfoDataGrid.DataBind();DataGridOnItemDataBoundMethod
private void uxSummaryInfoDataGridItemDataBound(DataGrid summaryDataGrid, DataGridItem item)
{
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
{
SummaryInformation summaryInfo = (SummaryInformation)item.DataItem;
ImageButton plusMinusImageButton = (ImageButton)item.Cells[1].FindControl("uxPlusMinusImageButton");
plusMinusImageButton.Click += new ImageClickEventHandler(PlusMinusImageButton_Click);ImageButton点击
protected void PlusMinusImageButton_Click(object sender, ImageClickEventArgs e)
{
PopulateDataGrid();
}发布于 2017-03-27 15:18:11
我解决了这个问题,我得到了这个错误,因为我没有清除原始的动态数据列,所以它使用相同的名称制作控件。
https://stackoverflow.com/questions/42833070
复制相似问题