formView、3 つのドロップダウン メニュー、送信ボタンを含む asp.net Web フォームがあります。ドロップダウン メニューは、データベースから値を取得します。
ユーザーが送信ボタンをクリックすると、ドロップダウン メニューの値がクエリを通じて実行され、結果が formView に表示されます。これは起こっていません。
callSelectProduct() でその他の肉や野菜に標準値を指定すると、フォーム ビューで正しい出力を確認できますが、これはページの読み込み時です。
これは、送信ボタンからのクリック メソッドです。
protected void getRecipe(object sender, EventArgs e)
{
string ddlOther = DropDownOther.SelectedValue;
string ddlVegetables = DropDownVegetables.SelectedValue;
string ddlMeat = DropDownMeat.SelectedValue;
int ddlIntOther = int.Parse(ddlOther);
int ddlIntVegetables = int.Parse(ddlVegetables);
int ddlIntMeat = int.Parse(ddlMeat);
Business.Class1.callSelectProduct(ddlIntOther, ddlIntMeat, ddlIntVegetables);
}
これは callSelectProduct() です: Debug.WriteLine はデバッグ コンソールに適切な値を返しますが、送信ボタンがクリックされたためにページがリロードされ、Debug.WriteLine は 0 0 0 を返します。FormView に何も表示されないのはそのためだと思います。0 0 0 の組み合わせは何も返さないためです。
public static void callSelectProduct(int other, int meat, int vegetables)
{
SelectProduct(other, meat, vegetables);
}
[System.ComponentModel.DataObjectMethod(System.ComponentModel.DataObjectMethodType.Select)]
public static Data.SouthWind.SelectRecipesFromIngredientsDataTable SelectProduct(int otherGet, int meatGet, int vegetablesGet)
{
int other = otherGet;
int meat = meatGet;
int vegetables = vegetablesGet;
System.Diagnostics.Debug.WriteLine("This is class 1 Other " + other + " Vegetable " + vegetables + " Meat " + meat);
DataAccess.SouthWindTableAdapters.SelectRecipesFromIngredientsTableAdapter tableAdaptertest = new DataAccess.SouthWindTableAdapters.SelectRecipesFromIngredientsTableAdapter();
return tableAdaptertest.GetData(other, meat, vegetables);
}
これは私たちのウェブフォームです:
<form id="form1" runat="server">
<div>
<asp:FormView ID="RecipeFormView" runat="server" AllowPaging="True" DataSourceID="ObjectDataSource1">
<EditItemTemplate>
RecipeName:
<asp:TextBox ID="RecipeNameTextBox" runat="server" Text='<%# Bind("RecipeName") %>' />
<br />
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" Text="Update" />
<asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</EditItemTemplate>
<InsertItemTemplate>
RecipeName:
<asp:TextBox ID="RecipeNameTextBox" runat="server" Text='<%# Bind("RecipeName") %>' />
<br />
<asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert" Text="Insert" />
<asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</InsertItemTemplate>
<ItemTemplate>
RecipeName:
<asp:Label ID="RecipeNameLabel" runat="server" Text='<%# Bind("RecipeName") %>' />
<br />
</ItemTemplate>
</asp:FormView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="SelectProduct" TypeName="Business.Class1">
<SelectParameters>
<asp:Parameter Name="otherGet" Type="Int32" />
<asp:Parameter Name="meatGet" Type="Int32" />
<asp:Parameter Name="vegetablesGet" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:DropDownList ID="DropDownOther" runat="server" DataSourceID="ObjectDataSource2" DataTextField="IngredientName" DataValueField="IngredientId">
</asp:DropDownList>
<asp:DropDownList ID="DropDownVegetables" runat="server" DataSourceID="SelectVegetables" DataTextField="IngredientName" DataValueField="IngredientId" Height="16px">
</asp:DropDownList>
<asp:DropDownList ID="DropDownMeat" runat="server" DataSourceID="SelectMeat" DataTextField="IngredientName" DataValueField="IngredientId">
</asp:DropDownList>
<asp:ObjectDataSource ID="SelectMeat" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="SelectMeat" TypeName="Business.Class1"></asp:ObjectDataSource>
<asp:ObjectDataSource ID="SelectVegetables" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="SelectVegetables" TypeName="Business.Class1"></asp:ObjectDataSource>
<asp:ObjectDataSource ID="ObjectDataSource2" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="SelectOther" TypeName="Business.Class1"></asp:ObjectDataSource>
<asp:Button ID="Button1" runat="server" OnClick="getRecipe" Text="Button" UseSubmitBehavior="False" />
<br />
</div>
</form>
どんな助けでも大歓迎です!