2017-01-20 4 views
0

My FormView wont DataBind. Я не получаю ошибок, все элементы найдены правильно, когда я просматриваю код, все выглядит так, как будто он работает как ожидающий. Параметр select установлен, а FormView - DataBound.Databind() из кода позади никогда не достигает базы данных

Но данные не возвращаются, и моя регистрация в базе данных показывает, что процедура, которая предназначена для DataBound, никогда не затрагивается.

панель Update

<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> 

+0

Вы установили 'SelectCommandType =" StoredProcedure "' в SqlDataSource вместо использования текстовой команды? Также вы можете привязать значение выпадающего списка непосредственно к процедуре, используя '' –

+0

Спасибо, Тетсуя за отличный совет! –

ответ

2

Немного изменений в SqlDataSource и сделано, я протестировал с помощью собственного sp, изменил его в соответствии с вашим использованием.

UpdatePanel & FormView

<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> 

Code Behind, я тестировал на нагрузке, вы можете использовать тот же код, где вы хотите.

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

SqlDataSource с изменениями:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="GetImages" SelectCommandType="StoredProcedure"> 
</asp:SqlDataSource> 

Он отлично работает, я проверил перед отправкой здесь.

Смежные вопросы