【发布时间】:2015-08-02 00:55:23
【问题描述】:
我在代码隐藏文件中创建了一个图像按钮。它有一个事件 imageButton_Click。我还想使用这个图像按钮和事件来为 aspx page.amspanel(基本上是一个面板)中的更新面板创建一个异步回发触发器,它正在使用图像按钮从文件夹中加载所有图像。当我单击 amspanel 中的图像时,我基本上是在尝试在页面上进行部分回帖,而不是再次加载 amspanel。
可以这样做吗?现在它说....在 UpdatePanel 'UpdatePanel1' 中的触发器的关联控件 'imageBtn1' 上找不到名为 'imageButton_Click' 的事件。
private void LoadImages()
{
var fileIdx = 0;
foreach (string strfile in Directory.GetFiles(Server.MapPath("~/images")))
{
fileIdx++;
ImageButton imageButton = new ImageButton() { ID = "imageBtn" + fileIdx };
FileInfo fi = new FileInfo(strfile);
imageButton.ImageUrl = "~/images/" + fi.Name;
imageButton.Height = Unit.Pixel(100);
imageButton.Style.Add("padding", "5px");
imageButton.Width = Unit.Pixel(100);
imageButton.Click += new ImageClickEventHandler(imageButton_Click);
AMSPanel1.Controls.Add(imageButton);
AMSPanel1.Height=Unit.Pixel(860);
UpdatePanel1.Triggers.Add(new AsyncPostBackTrigger
{
ControlID = imageButton.ID,
EventName = "imageButton_Click"
});
}
}
protected void imageButton_Click(object sender, ImageClickEventArgs fi)
{
testimage.ImageUrl = ((ImageButton)sender).ImageUrl;
}
// In aspx file i am doing this.AMSPanel is just a panel control.
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Image ID="testimage" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
<ams:AMSPanel ID="AMSPanel1" CssClass="CustomWidth" runat="server" Width="130px" Height="700px" ScrollBars="Vertical">
</ams:AMSPanel>
【问题讨论】:
-
你给它起名字了吗?没有名字你可能有工作找到它
-
是的 imagebutton 是它的名字
-
你确定吗?它不在您发布的代码中,并会解释您的问题
-
您没有为新按钮命名。严重地。这就是为什么你找不到它
-
哪一行说找不到?