如何在不使用aut.net中的autopostback和更新面板的情况下获取Label中的下拉列表选定值

时间:2012-08-17 12:56:25

标签: c# asp.net

如何在没有autopostback的标签中获取下拉列表选择值,并在asp.net中更新面板。我希望客户端编写此代码的脚本 我有以下代码: -

protected void DropDownList1_TextChanged(object sender, EventArgs e)
{
    Label1.Text = DropDownList1.SelectedValue;
   // DropDownList1.Attributes["onclick"] =
   //"Label1.Text=this.options[this.selectedIndex].value";
}

4 个答案:

答案 0 :(得分:3)

如果你不想使用jquery(不是每个人都这样做!:))你可以使用标准的javascript

<script language="javascript" type="text/javascript">
    function setLabelText() {
        var dropdown = document.getElementById("DropDownList1");
        document.getElementById("Label1").innerHTML = dropdown.options[dropdown.selectedIndex].text;
    }

</script>
<asp:DropDownList ID="DropDownList1" ClientIDMode="Static" runat="server" AutoPostBack="false" onchange="setLabelText();">
  <asp:ListItem Value="1" Text="One" />
  <asp:ListItem Value="2" Text="Two" />
</asp:DropDownList>

<asp:Label ID="Label1" runat="server" Text="Label" ClientIDMode="Static"></asp:Label>

答案 1 :(得分:2)

在您的CS代码中,添加以下属性:

ddlMyDrop.attributes.add("onchange","SetLabel(this,lblCtrl)");

在你的JS代码......

function SetLabel(sender, target){
    $(target).val($(sender).val());
}

这假设您引用了jQuery。

答案 2 :(得分:1)

您可以使用jQuery轻松完成此操作。标签在客户端变为span,DropDownList变为select。请记住,asp.net喜欢将字符串附加到结果内容id,例如 MainContent _...

$(document).ready(function () {
    $('#MainContent_DropDownList1').change(function () {
        try {
            $('#MainContent_Label1').text($(this + "option:selected").text());
        } catch (err) {
            alert(err);
        }
    });
});

答案 3 :(得分:0)

不使用jQuery或Javascript,因为这是对现有网站的修复,并且它不是那样设计的。好吧,我已经达到了这样一个点,当选择DropDownList并且它是postBack时,我的逻辑是将textBox readOnly状态设置为true或false。我现在的问题是selectValue不一致。它在selct字段中显示的不是回发到页面的内容。假设我有无,5.00,10.00,15.00,20.00作为我的选择。我首先选择10.00并且它回发无,然后我选择20.00它显示10.00。它回发先前的选择值。整个站点都是从页面后面的代码中编写的。 aspx页面完全是从.vb页面编写的。一切都写入asp标签。这是代码;

            If Page.IsPostBack Then
                If product_option_is_required > 0 then
                    myTextBox.ReadOnly= true
                Else
                    myTextBox.ReadOnly= false
                End if
                For Each child_control As Control In productOptions.Controls
                    If TypeOf child_control Is DropDownList Then
                        Dim child_ddl As DropDownList = child_control
                        tempName = products.getProductDependant("product_option_name",product_option_id)
                        tempSelectText = products.getProductSelectDependant("product_option_detail_name",child_ddl.SelectedValue)
                        priceDependant.Text ="here" & child_ddl.ID & " " & child_ddl.SelectedIndex & " " & child_ddl.SelectedValue & " --" & tempSelectText
                        If child_ddl.Text = "None" then
                            myTextBox.ReadOnly = true
                            myTextBox.Text = "If selected above enter name"
                        Else
                            myTextBox.ReadOnly = false
                            myTextBox.Text = ""
                        End if
                    End If

                next
            End if