如何从asp.net代码中的html组合框获取价值

时间:2015-12-16 09:27:15

标签: c# html asp.net

我无法从asp.net的组合框中获取所选值。我通过添加id和runat =“server”并使用bootstrap属性在服务器端编码中使用HTML组合框。如何在按钮单击中获取组合框的值

<div class="form-group">
        <label class="col-xs-3 control-label">Size</label>
        <div class="col-xs-5 selectContainer">

            <select class="form-control" name="size" runat="server" id="Combobox">
                <option value="">Choose a size</option>
                <option value="s">Small (S)</option>
                <option value="m">Medium (M)</option>
                <option value="l">Large (L)</option>
                <option value="xl">Extra large (XL)</option>
            </select>
        </div>
    </div>

code behind


        string value = Combobox.Items.ToString();

2 个答案:

答案 0 :(得分:0)

ASP.NET是所谓的服务器端代码,而HTML是客户端代码。这意味着除了ASP.NET生成HTML并将其发送回te客户端之外,HTML和ASP.NET之间没有直接连接。

为了能够从选择框中获取值,您应该使用AJAX请求在选择更改后立即将值发布到服务器,或者强制用户发布表单。

由于您似乎正在创建大小选择,我认为使用AJAX方法应该是最好的方法。

答案 1 :(得分:0)

在代码隐藏中,html - select runat=serverItemsListItemCollection返回SelectedIndex

您可以使用HtmlSelect.Value

string selectedItemValue = null;
string selectedItemText  = null;
if(Combobox.SelectedIndex >= 0)
{
    ListItem selectedItem = Combobox.Items[Combobox.SelectedIndex];
    selectedItemValue = selectedItem.Value;
    selectedItemText  = selectedItem.Text;
}

或使用具有相同功能的{{3}}属性:

string selectedItemValue = Combobox.Value; // String.Empty if no item selected