2013-01-14 38 views
1

我有一个silverlight应用程序,用户可以在应用程序中键入SQL查询,然后服务器将查询结果作为Excel文件返回。如何使用HyperlinkBut​​ton执行'HTTP-POST'

用户点击下载链接,链接到生成excel文件的服务器中的HttpHandler。经过一番研究后[1],我发现使用HyperlinkBut​​ton控件是提供文件链接的最稳健的方式,而不存在浏览器弹出式安全设置的麻烦。

我需要将SQL查询作为参数发送到HttpHandler,这个查询可能会变得很长。 由于大小限制,我无法将它作为查询字符串(HTTP GET)包含在URL中。

有没有办法用HyperlinkBut​​ton做'HTTP-POST'?

[1] Browser.HtmlPage.Window.Navigate is blocked but HyperlinkButton isn't - why?

回答

0

而不是使用链接为什么只有你使按钮看起来像链接代替。 Facebook的一个完美例子就是链接。它在帖子中有几个按钮,但所有这些都显示为链接。这是Css代码,它使按钮看起来像一个链接。您可以随时更改链接的外观(也许是按钮)。

这里的按钮的CSS代码。

button { 
    background:none!important; 
    border:none; 
    padding:0!important; 
    /* Do all your Styling to the Button here. It will look like a link instead. */ 
} 

按钮HTML代码。

<button>Your Button Here.</button> 

希望能够解决您的问题。谢谢。

+0

谢谢您的回答。我需要在Silverlight应用程序中执行此操作。我使用HyperlinkBut​​ton控件的原因不是因为它的外观,而是因为Silverlight框架的限制。 – Yeonho

+0

那么我认为我已经将注意力放在了您的问题上? – JayKandari

+0

我正在Silverlight中开发应用程序。用户界面不是用HTML/CSS创建的 – Yeonho

3

在这种情况下,我认为你可以尝试使用jQuery发送一个get/post请求。

发布采购信息API documentaton:http://api.jquery.com/jQuery.post/

Get请求API documantation:http://api.jquery.com/jQuery.get/

<!DOCTYPE html> 
<html> 
<head> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"> 
</script> 
<script> 
function f(){ 
    $.post("http://www.w3schools.com/jquery/demo_test_post.asp", 
    { 
     name:"Donald Duck", 
     city:"Duckburg" 
    }, 
    function(data,status){ 
     alert("Data: " + data + "\nStatus: " + status); 
    } 
)}; 

</script> 
</head> 
<body> 

<a href="javascript:f()">Send an HTTP POST request to a page and get the result back</a> 

</body> 
</html> 
相关问题