gpt4 book ai didi

javascript - 重复输入vb.net

转载 作者:行者123 更新时间:2023-11-28 02:41:31 25 4
gpt4 key购买 nike

我正在用 vb.NET 编写一本食谱书,但有 PHP 背景。我正在尝试构建在保存食谱之前向其添加多种成分的功能。

在 PHP 中,我会有一个自动完成输入和添加按钮。当按下添加按钮时,成分会添加到成分列表中(带有成分 ID 的隐藏字段),然后当我发布食谱时,我会简单地循环遍历发布数据并提取 id,如下所示:

<div id="ingredient-list">
<div>
<input type="hidden" name="ingredient[0]" value="32" />
<span>Potatoes</span>
</div>
</div>
<div>
<input type="text" onKeyUp="IngredientSearch(this)" />
<div id="food-search-results" class="auto-complete"></div>
</div>

foreach($_POST['ingredient'] as $ingredient) {
recipe.addIngredient($ingredient);
}

但是我不确定如何在 .NET 中完成这样的任务。目前,我的添加按钮导致回发到页面(我不希望这样做)并将数据添加到 asp:repeater。任何人都可以请给我指出正确的方向或代码示例吗?

顺便说一句,我的下一个任务是允许用户上传多个图像。其功能大致相同,但在将文件附加到现有输入时添加新的文件输入。

最佳答案

如果您不想引起回发,您可以将按钮作为 html 按钮,或者可以将按钮和转发器放在更新面板中。这将导致部分回发。这可能是更好的选择,因为我认为您无法更新 asp:repeater。

正如 Titopo 所说,我建议要么使用列表来存储 ID,要么使用数据集在 Viewstate 中存储 ID 和文本值。

单击按钮后,您可以执行类似的操作...

        Dim ds As DataSet
Dim dt As DataTable
If Not ViewState("Ingredients") Is Nothing Then
ds = ViewState("Ingredients")
dt = ds.Tables(0)

Dim dr As DataRow = dt.NewRow
dr.Item("IngredientID") = IngredientID' However you would get that.
dr.Item("Ingredient") = txtIngredient.Text
dt.Rows.Add(dr)
Else
ds = New DataSet
dt = New DataTable
dt.Columns.Add(New DataColumn("IngredientID"))
dt.Columns.Add(New DataColumn("Ingredient"))

Dim dr As DataRow = dt.NewRow
dr.Item("IngredientID") = IngredientID' However you would get that.
dr.Item("Ingredient") = txtIngredient.Text
ds.Tables.Add(dt)
ds.Tables(0).Rows.Add(dr)
End If

Dim dv As DataView = dt.DefaultView
dv.Sort = "Ingrediant ASC"
repIngrediants.DataSource = dv
repIngrediants.DataBind() ' -- Bind to your repeater here

ViewState("Ingredients") = ds

这将存储每种成分的 ID 和文本。如果您在更新面板中有此内容,它将顺利执行,并且仅加载带有按钮、文本框和中继器的部分。

关于javascript - 重复输入vb.net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12580653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com