我有什么理由不能这样做
<asp:Button runat="server" ID="Btn1" OnClick='<%# Response.Redirect("wibble.aspx?ID=" + Eval("ID")) %>'/>
我收到编译错误:
The best overloaded method match for 'System.Convert.ToString(object, System.IFormatProvider)' has some invalid arguments
我很欣赏我可以在例程后面创建一个代码来处理重定向,但我希望能够动态创建这些类型的按钮。
我可以使用<asp:HyperLink>
并使用NavigateUrl
属性工作正常,但为什么我不能使用按钮执行此操作?
答案 0 :(得分:1)
您可以改用OnClientClick
属性。这样您就可以为onclick
HTML属性添加Javascript代码。
<asp:Button runat="server" ID="Btn1" OnClientClick="window.location ='wibble.aspx?ID=<%# Eval("ID")).ToString() %>"/>
答案 1 :(得分:0)
你不能这样做,因为它会在浏览器中以html的形式呈现为[type = submit],而对于html,当你点击按钮时它不是重定向的功能。
如果您有按钮中有超链接的请求,ASP.net会提供linkbutton控件,这将解决您的需求。
<asp:linkbutton PostBackUrl="~/something.aspx?id=1" runat="server">LinkButton</asp:linkbutton>