我有一个带有文本框,链接按钮和列表框的简单aspx页面。
列表框将填充SQL数据库中存储过程的值。
我想做的是,当用户点击链接按钮时,用这些变量填充列表框。理想情况下,我想在没有回发的情况下这样做。
有什么办法可以实现吗?
谢谢,
杰森
答案 0 :(得分:2)
我很快就嘲笑了你。
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">LinkButton</asp:LinkButton>
<br />
<asp:ListBox ID="ListBox1" runat="server" DataTextField="yourdesiredcolumnamegoeshere"></asp:ListBox>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="Data Source=;Initial Catalog=;User ID=;password="
ProviderName="System.Data.SqlClient"
SelectCommand="SELECT [yourdesiredcolumnamegoeshere] FROM [yourtablenamegoeshere]">
</asp:SqlDataSource>
</form>
关于背后的代码:
protected void LinkButton1_Click(object sender, EventArgs e)
{
ListBox1.DataSource = SqlDataSource2;
ListBox1.DataBind();
}
当然,您可以将SqlDataSource更改为存储过程,但是当您单击该按钮时,它将填充该列表而不进行回发。如果您还有其他需要,请告诉我。
-JJ
答案 1 :(得分:1)
如果你真的不想回帖,那么必须使用javascript或其他方法在客户端以某种方式完成。如果你想要完成一个回帖的外观,这可以使用updatepanel来完成。
答案 2 :(得分:0)
首先,如果你不想要回发,它会变得复杂。是否有理由避免回发?
但是,如果您不希望回发,则有2个选项:
对于这两个操作,您将需要使用AJAX来查询服务器(Web方法或http处理程序)。您不能使用MS AJAX,因为它会导致部分回发。使用jQuery来执行请求。
请注意,UpdatePanel使用MS AJAX,因此会导致部分回发。