asp dropdown selectedvalue =“”当使用javascript填充时

wvt8vs2t  于 2023-03-24  发布在  .NET
关注(0)|答案(1)|浏览(104)

我如何在一个没有选项的web表单中使用asp:dropdown,直到它们通过浏览器中的API由javascript填充?
我已经成功地使用jquery填充字段,但是一旦我提交表单,selectedValue每次都等于""
我使用asp:dropdownlist的原因是因为对于编辑表单,我使用API值预填充字段,但在我在前端更改它们之后,selectedvalue并不表示正确的值。如果我不加载任何值,selectedvalue始终是""
我有3个下拉列表是“链接”

<asp:dropdownlist id="first"  class="form-control first" runat="server" />
<asp:dropdownlist id="second"  class="form-control second" runat="server" />
<asp:dropdownlist id="third"  class="form-control third" runat="server" />

$(document).ready(function () {
    populateFirst();
    $('.first').change(function () {
         populateSecond();
    });
   // etc...
)};

在提交处理程序中,不管我选择什么:

dim firstVal = first.selectedvalue ' equals "" 
dim secondVal = second.selectedvalue ' equals ""
disho6za

disho6za1#

客户端ddl没有任何视图状态。
那么,如果你想要选择的索引呢?
然后,您需要保存/获取并使用控件在回发时保持该值。
此示例显示了概念验证:(使用jQuery)

<asp:Button ID="Button2" runat="server" Text="post back"
            OnClick="Button2_Click" CssClass="btn"
            />            
        <br />
        Server side code (cbo choice) =
        <asp:Label ID="lblChoice" runat="server" Text=""></asp:Label>
        <br />
        <br />
        <asp:Button ID="Button1" runat="server" Text="file cbo"
            OnClientClick="fillcbo();return false"
            CssClass="btn"
            />
        <br />

        <asp:DropDownList ID="DropDownList1" runat="server" ClientIDMode="Static"
            width="200px" onchange="mysel(this);">

        </asp:DropDownList>
        <asp:HiddenField ID="cboChoice" runat="server" ClientIDMode="Static" />
        <br />

    </div>
    <script>

        function fillcbo() {
            var cbo = $('#DropDownList1')
            for (i = 1; i <= 10; i++) {
                var option = document.createElement("option");
                option.value = i;
                option.innerHTML = 'item ' + i;
                cbo.append(option);
            }
        }

        function mysel(cbo) {
            $('#cboChoice').val(cbo.value)
        }
    </script>

post-back按钮的代码是这样的:

Protected Sub Button2_Click(sender As Object, e As EventArgs)

    Debug.Print($"combo choice = {cboChoice.Value}")
    lblChoice.Text = cboChoice.Value

End Sub

因此,当我们运行时,我们得到:

相关问题