加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

以编程方式为SqlDataSource设置ASP.NET参数不适用于回发

发布时间:2020-12-16 06:53:30 所属栏目:asp.Net 来源:网络整理
导读:我想以编程方式为SqlDataSource设置一个参数,如步骤5中的 http://www.asp.net/data-access/tutorials/using-parameterized-queries-with-the-sqldatasource-vb所述. GridView也绑定到sqlDataSource.我的标记是: asp:SqlDataSource ID="mySqlDataSource" run
我想以编程方式为SqlDataSource设置一个参数,如步骤5中的 http://www.asp.net/data-access/tutorials/using-parameterized-queries-with-the-sqldatasource-vb所述. GridView也绑定到sqlDataSource.我的标记是:

<asp:SqlDataSource ID="mySqlDataSource" runat="server" 
    ConnectionString="<%$ConnectionStrings:ConnectionStringHTL %>" 
    SelectCommand="SELECT [subscription_con] FROM [HTL_CONSUME_CON] WHERE ([subscription_con] = @subscription_con)">
    <SelectParameters>
        <asp:Parameter Name="subscription_con" Type="Int32" />
    </SelectParameters>
</asp:SqlDataSource>
<asp:GridView ID="myGridView" runat="server" AllowPaging="True" 
    AllowSorting="True" DataSourceID="mySqlDataSource">
</asp:GridView>

在代码隐藏中,我有:

Protected Sub Page_Load(ByVal sender As Object,ByVal e As System.EventArgs) Handles Me.Load    
    mySqlDataSource.SelectParameters("subscription_con").DefaultValue = calcResult()
End Sub

calcResult()的返回值对于每个回发都是不同的.当用户单击具有UseSubmitBehavior = True的表单上的Button时,将发生回发.

我使用调试器逐步执行后面的代码,我看到它为每个页面加载执行,我看到clacResult()返回的期望值.

但是,绑定的DataGrid永远不会在回发上更新,它只会在第一页加载时更新.

如果我更改SqlDataSource参数以将控件作为源,则它适用于回发.换句话说,我更改了标记使用:

<asp:ControlParameter ControlID="myTextBox" Name="subscription_con" PropertyName="Text" Type="Int32" />

我改变后面的代码是:

Protected Sub Page_Load(ByVal sender As Object,ByVal e As System.EventArgs) Handles Me.Load    
   myTextBox.Text = calcResult()
End Sub

使用TextBox控件作为SqlDataSource参数的源,GridView的更新适用于原始页面加载和所有回发.但是,我真的不需要TextBox,也不想使用它.

关于如何以编程方式为SqlDataSource设置参数,我缺少什么?当没有控制源时,为什么在以编程方式设置SqlDataSource参数时,绑定的GridView不会在回发上更新?

解决方法

您可能需要在回发上显示数据:

if (Page.IsPostBack)
{
    grid.DataBind();
}

应该这样做.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读