2011-01-05 76 views
1

我在页面上有超链接发送某些变量,例如Default.aspx?var1 = x & var2 = yASP.net图像按钮问题

然后我动态地创建一个ImageButton。我的ImageButton有它自己的事件。 似乎ImageButton继承了超链接发送的值。如果我右键单击图像按钮,并通过浏览器查看属性,它也指向以下以及Default.aspx?var1 = x & var2 = y,然后我试图关闭视图状态关闭哪一个没有工作。

我也试过指定PostBackUrl,以便不发送url变量。但它的事件不会触发。

是否有这就是ASP.NET的默认行为,任何方式不是H

回答

1

ASP.NET中表单的回发URL始终与表单最初加载时使用的URL相同。因此,如果你从超链接加载一个查询字符串的页面,然后使用该页面上的回发控件(比如ImageButton),它总是会回发到它最初加载的同一个URL,包括查询字符串。

有不同的方法来改变取决于您使用的ASP.NET版本的回发URL,但如果2.0或更低,它将必须是JavaScript。在此问题上专门搜索(更改asp.net中的回发网址或表单操作)以找到问题的答案。

其他较不优雅的解决方案包括在查询字符串初始加载后,将页面重定向到本身而没有查询字符串。

你也可以忽略回传中的查询字串,这几乎总是所需的行为,所以大多数情况下这是一个整型问题。例如。在你的代码只是做...

if (!Page.IsPostback) { 
// check for querystring data and do stuff if there, otherwise ignore it 
} 
1

。由于ImageButton只会导致执行事件处理程序,因此附加到它的超链接将成为其相同的页面。

为什么这是一个问题?