来自代码的Databind()永远不会到达数据库

时间:2017-01-20 05:18:00

标签: c# asp.net .net vb.net sqldatasource

我的FormView不会使用DataBind。我没有错误,所有元素都被正确找到,当我单步执行代码时,一切看起来都像预期的那样工作。 select参数已设置,FormView为DataBound。

但是没有返回数据,我的数据库日志记录显示从未触及过应该是DataBound的过程。

更新面板

 <asp:updatepanel ID="upnlMixingTankInfo" runat="server">
<ContentTemplate>
 <asp:formview id="fvMixingTankInfo" runat="server" datasourceid="SqlDataSourceMixingTankInfo">
   <ItemTemplate>
         <asp:label runat="server">Vessel Capacity:</asp:label>
         <asp:TextBox ID="vesselCapacity" runat="server" class="form-control" Text='<%# Bind("fldVesselCapacity")%>'></asp:TextBox>
   </ItemTemplate>
  </asp:formview>
</ContentTemplate>

代码背后:

SourceDropDownList = sender
  upnlMixingTankInfo = CType(SourceDropDownList.Parent.FindControl("upnlMixingTankInfo"), UpdatePanel)
        fvTankInfo = CTYPE(upnlMixingTankInfo.FindControl("fvMixingTankInfo"), FormView)
        If Not IsNothing(SourceDropDownList.SelectedValue) Then
           SqlDataSourceMixingTankInfo.SelectParameters.Add("TankName", DropDownListEquipmentList.SelectedValue)
        End If
        fvTankInfo.Databind()

SQLDATSOURCE:

         <asp:SqlDataSource ID="SqlDataSourceMixingTankInfo" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ZMConnectionString %>"   
    SelectCommand="EXEC stpWebGetMixTankCapacity @TankName" >
    <SelectParameters>
      <asp:Parameter Name="TankName" defaultvalue=""/>
    </SelectParameters>

1 个答案:

答案 0 :(得分:2)

SqlDataSource几乎没有变化,我已经使用自己的sp进行了测试,根据您的使用情况进行了修改。

UpdatePanel&amp; FormView的

this.setState({ uri: require('../images/test.jpg') })

Code Behind,我已经测试了加载,你可以在任何你想要的地方使用相同的代码。

<asp:UpdatePanel ID="upnlMixingTankInfo" runat="server">
    <ContentTemplate>
        <asp:FormView ID="fvMixingTankInfo" runat="server" DataSourceID="SqlDataSource1">
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server">Vessel Capacity:</asp:Label>
                <asp:TextBox ID="vesselCapacity" runat="server" class="form-control" Text='<%# Bind("Name")%>'></asp:TextBox>
            </ItemTemplate>
        </asp:FormView>
    </ContentTemplate>
</asp:UpdatePanel>

带有更改的SqlDataSource:

    protected void Page_Load(object sender, EventArgs e)
    {
        SqlDataSource1.SelectParameters.Add("Id", "10");
    }

它运作完美,我在提交之前已经过测试。