2014-10-24 3 views
1

Работает над формой ASP.NET и борется с одной конкретной частью. Я использую SqlDataSource с функцией Insert, которая указывает на сохраненный proc, с несколькими входными параметрами. У меня установлен FormView. Я хотел бы, чтобы одно из полей ввода формы было DropDownList, параметры которого заполнены из другого SqlDataSource. Для справки, вот FormView:ASP.NET DropDownList в FormView

<asp:FormView runat="server" id="FormView1" DataSourceID="SqlDataSource1" DefaultMode="Insert"> 
    <EditItemTemplate> 
     refund_ach: 
     <asp:CheckBox Checked='<%# Bind("ach") %>' runat="server" id="refund_achCheckBox" /> 
     <br /> 
     refund_dba_name: 
     <asp:TextBox Text='<%# Bind("dbaname") %>' runat="server" id="refund_dba_nameTextBox" /> 
     <br /> 
     refund_mid: 
     <asp:TextBox Text='<%# Bind("mid") %>' runat="server" id="refund_midTextBox" /> 
     <br /> 
     refund_description: 
     <asp:TextBox Text='<%# Bind("description") %>' runat="server" id="refund_descriptionTextBox" /> 
     <br /> 
     refund_amount: 
     <asp:TextBox Text='<%# Bind("amount") %>' runat="server" id="refund_amountTextBox" /> 
     <br /> 
     refund_type: 
     <asp:TextBox Text='<%# Bind("type") %>' runat="server" id="refund_typeTextBox" /> 
     <br /> 
     <asp:LinkButton runat="server" Text="Update" CommandName="Update" id="UpdateButton" CausesValidation="True" />&nbsp; 
     <asp:LinkButton runat="server" Text="Cancel" CommandName="Cancel" id="UpdateCancelButton" CausesValidation="False" /> 
    </EditItemTemplate> 
    <InsertItemTemplate> 
     <asp:Table runat="server" id="Table1"> 
      <asp:TableRow> 
       <asp:TableCell>ACH?: 
       </asp:TableCell> 
       <asp:TableCell><asp:CheckBox Checked='<%# Bind("ach") %>' runat="server" id="refund_achCheckBox" /> 
       </asp:TableCell> 
      </asp:TableRow> 
      <asp:TableRow> 
       <asp:TableCell>DBA Name: 
       </asp:TableCell> 
       <asp:TableCell><asp:TextBox Text='<%# Bind("dbaname") %>' runat="server" id="refund_dba_nameTextBox" /> 
       </asp:TableCell> 
      </asp:TableRow> 
      <asp:TableRow> 
       <asp:TableCell>MID: 
       </asp:TableCell> 
       <asp:TableCell><asp:TextBox Text='<%# Bind("mid") %>' runat="server" id="refund_midTextBox" /> 
       </asp:TableCell> 
      </asp:TableRow> 
      <asp:TableRow> 
       <asp:TableCell>Description: 
       </asp:TableCell> 
       <asp:TableCell><asp:TextBox Text='<%# Bind("description") %>' runat="server" id="refund_descriptionTextBox" /> 
       </asp:TableCell> 
      </asp:TableRow> 
      <asp:TableRow> 
       <asp:TableCell>Amount: 
       </asp:TableCell> 
       <asp:TableCell><asp:TextBox Text='<%# Bind("amount") %>' runat="server" id="refund_amountTextBox" /> 
       </asp:TableCell> 
      </asp:TableRow> 
      <asp:TableRow> 
       <asp:TableCell>Type: 
       </asp:TableCell> 
       <asp:TableCell><asp:DropDownList DataSourceID="SqlDataSource2" SelectedValue='<%# Bind("type") %>' DataTextField="Reason" DataValueField="ID" runat="server" id="refund_typeTextBox" /> 
       </asp:TableCell> 
      </asp:TableRow> 
     </asp:Table> 
        <asp:LinkButton runat="server" Text="Insert" CommandName="Insert" id="InsertButton" CausesValidation="True" />&nbsp; 
     <asp:LinkButton runat="server" Text="Cancel" CommandName="Cancel" id="InsertCancelButton" CausesValidation="False" /> 
    </InsertItemTemplate> 
    <ItemTemplate> 
     refund_ach: 
     <asp:CheckBox Checked='<%# Bind("ach") %>' runat="server" id="refund_achCheckBox" Enabled="false" /> 
     <br /> 
     refund_dba_name: 
     <asp:Label Text='<%# Bind("dbaname") %>' runat="server" id="refund_dba_nameLabel" /> 
     <br /> 
     refund_mid: 
     <asp:Label Text='<%# Bind("mid") %>' runat="server" id="refund_midLabel" /> 
     <br /> 
     refund_description: 
     <asp:Label Text='<%# Bind("description") %>' runat="server" id="refund_descriptionLabel" /> 
     <br /> 
     refund_amount: 
     <asp:Label Text='<%# Bind("amount") %>' runat="server" id="refund_amountLabel" /> 
     <br /> 
     refund_type: 
     <asp:Label Text='<%# Bind("type") %>' runat="server" id="refund_typeLabel" /> 
     <br /> 
    </ItemTemplate> 
</asp:FormView> 

А вот SqlDataSource:

<asp:SqlDataSource runat="server" id="SqlDataSource1" ProviderName="System.Data.SqlClient" ConnectionString="Data Source=myserver;Initial Catalog=mydatabase;Persist Security Info=True;User ID=mysvcaccount;Password=NOPE!;" SelectCommand="SELECT [refund_ach], [refund_dba_name], [refund_mid], [refund_description], [refund_amount], [refund_type] FROM [refund]" InsertCommand="EXEC usp_refund_insert @user, @ach, @dbaname, @mid, @description, @amount, @type"> 
    <InsertParameters> 
     <asp:formparameter FormField="refund_achCheckBox" Name="ach" Type="Boolean" /> 
     <asp:formparameter FormField="refund_amountTextBox" Name="amount" Type="Decimal" /> 
     <asp:formparameter FormField="refund_dba_nameTextBox" Name="dbaname" Type="String" /> 
     <asp:formparameter FormField="refund_descriptionTextBox" Name="description" Type="String" /> 
     <asp:formparameter FormField="refund_midTextBox" Name="mid" Type="String" /> 
     <asp:formparameter FormField="refund_typeTextBox" Name="type" Type="Int32" /> 
     <asp:parameter DefaultValue="dfsdf" Name="user" Type="String" /> 
    </InsertParameters> 
</asp:SqlDataSource> 

Данные заселяет в DDL просто отлично (от другого SqlDataSource). Появятся все нужные параметры. Но при отправке формы я получаю сообщение об ошибке. Я удалил DDL и закодировал значение этого параметра, и он выполнил штраф. Я провел последние пару часов, прочесывая интернет, чтобы найти решение, найти тонны, попробовать их и не повезло. Я являюсь администратором базы данных по сделке, поэтому .NET не является моим форте, но на самом деле не похоже, что это должно быть так сложно, чтобы DDL работал так.

ответ

1

WOW. После того, как я был очень расстроен, я решил начать с нуля и дать ему еще один шаг, просто чтобы убедиться, что я ничего не пропустил. Я построил все ТОЧНО то же самое, MINUS все элементы таблицы ... и он отлично работал. Я добавил элементы таблицы обратно, перестала работать. Снял их снова: работает.

Не знаю, почему, возможно, специалист .NET-профессионала может объяснить, почему, но он определенно решил мою проблему.

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