如何在没有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";
}
答案 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