我有一个带有formview的模态弹出窗口,默认模式为Edit。表单内的控件绑定到数据。我JavaScript只有在从下拉列表中选择某个值时才显示文本框和标签。我也想在加载时这样做。
<tr>
<td align="left">
<asp:DropDownList
ID="ddl5"
AutoPostBack ="false"
onchange = showifother('12',this.value);"
SelectedValue='<%# Eval("event_type") %>'
runat="server"
DataSourceID="SqlDataSource5"
AppendDataBoundItems ="true"
DataTextField="Description"
DataValueField="ID">
<asp:ListItem
Selected="True"
style="color:gray"
Value="" >Causes of Damage</asp:ListItem>
</asp:DropDownList>
<tr id="treditpropdamage" style="display:none">
<td align="left">
<asp:TextBox
ID="txt2"
runat="server"
TextMode ="MultiLine"
ondatabinding="TextBox2_DataBinding"
ValidationGroup ="Editprop"
Text = '<%# Bind("bounddata") %>'></asp:TextBox>
</td>
</tr>
function showifother(num, value)
{
var treditpropdamage = document.getElementById('treditpropdamage');
if (num == '12')
{
if (value == '4')
{
treditpropdamage.style.display = '';
}
else
{
treditpropdamage.style.display = 'none';
}
}
}
如果4是C#中Dropdownlist的绑定值的值,如何将tr标记设置为visible?添加Runat =“server”不是一个选项,因为我想通过document.getelementbyid访问JavaScript中的控件
答案 0 :(得分:0)
一些选择:
showifother('12',document.getElementById('ddl5').value in your javascript
可能有帮助)我真的建议你下载并学习使用jQuery,dojo或Prototype .js这样的框架 - 它们会加速你的开发并为你提供许多工具,让你的生活更轻松。
答案 1 :(得分:0)
如果您正在使用MasterPage,我认为这样做:
1)将Master Page或Page的body标签设置为runat =“server”并为其指定id:id =“MainBody”
2)像往常一样引用javascript文件: &lt; -script src =“yourJavascriptFile.js”type =“text / javascript”&gt;
3)现在,在代码隐藏中,您可以将onload属性附加到body标签:
protected void Page_Load(object sender,EventArgs e)
{
MasterPageBodyTag = (HtmlGenericControl)Page.Master.FindControl("MainBody");
MasterPageBodyTag.Attributes.Add("Onload", "YourJSFunction()");
}
请记住,我没有测试过上面的例子:)
答案 2 :(得分:0)
您可以使用快速脚本块和三元运算符
设置TR的显示样式
<tr id="treditpropdamage"
style="display:<%= ddl5.SelectedValue == "12" ? "" : "none" %>">
另外作为一个FYI,你仍然可以在javascript中访问runat =“server”元素,你只需要提供带有clientID元素的javascript。你可以通过将id注入javascript来实现这一点:
<script>
var element = document.getElementById("");
</script>
答案 3 :(得分:0)
使用jQuery!从http://jquery.com/下载.js
或从Google的CDN http://code.google.com/apis/libraries/devguide.html#jquery
以下是我的示例代码:
http://jsfiddle.net/jphellemons/rPK52/
if ($("#ddl5").val() == 4)
$("#treditpropdamage").show();
使用Asp.Net 4,您可以使用clientidmode
否则使用:
if ($("#<%=ddl5.ClientId%>").val() == 4)
$("#treditpropdamage").show();