ASP.Net中的ImageButton ID提取

时间:2014-03-05 10:46:48

标签: c# asp.net

我的Page.In数据库中有一些图像按钮,我存储哪些按钮来显示哪个图像。但是在页面中显示时我无法显示。没有显示错误,但不显示图像。  代码是:`

DataSet dsSeat = new DataSet();
dsSeat=objSeat.SeatView();
for (int i = 0; i < dsSeat.Tables[0].Rows.Count; i++)
{
ImageButton Button1 = new ImageButton();
Button1.ID = dsSeat.Tables[0].Rows[i]["Image"].ToString();
Button1.ImageUrl = "~/App_Images/1.png";
}

在某些活动中,我可以使用

获取ID
ImageButton CurrentButton = (ImageButton)sender;
string buttonId = CurrentButton.ID;
CurrentButton.ImageUrl = "~/App_Images/1.png";

但是因为我在一个不在事件中的方法中使用它,怎么做?

1 个答案:

答案 0 :(得分:1)

您只是创建ImageButton对象而不实际将它们插入页面。选择一些容器,例如下面示例中的Panel1,然后将按钮插入其Controls集合中:

for (int i = 0; i < dsSeat.Tables[0].Rows.Count; i++)
{
    ImageButton Button1 = new ImageButton();
    Button1.ID = dsSeat.Tables[0].Rows[i]["Image"].ToString();
    Button1.ImageUrl = "~/App_Images/1.png";

    Panel1.Controls.Add(Button1);
}

当然可能是更复杂的逻辑而不是简单地插入Panel - 这取决于您的要求。

更新。从评论中看来,您的问题似乎在其他地方。如果您需要在页面上已有的控件上设置图像,请执行以下操作:

<asp:ImageButton ID="A1" runat="server" ImageUrl="~/App_Images/0.png" />

只需在后面的代码中调用它的id:

A1.ImageUrl = "~/App_Images/1.png";

如果您从DB收到ID,那么您可以在按钮的直接容器上使用FindControl(例如Panel1):

for (int i = 0; i < dsSeat.Tables[0].Rows.Count; i++)
{
    ImageButton Button1 = Panel1.FindControl(dsSeat.Tables[0].Rows[i]["Image"].ToString());
    Button1.ImageUrl = "~/App_Images/1.png";
}

请注意,这只是一个猜测,从您的问题中不清楚确切的问题是什么。