代码如下,运行之后,在动态添加的那个文本框text_1中输入asd,然后点击下拉列表select,选第二项,然后进入.cs文件的select_SelectedIndexChanged函数,可是这时候我为什么取不到hidden里的值呢?,我把hidden改成text也不好使...
请各位高手指点
不多说,上代码,原来很复杂,我简化了下
.aspx<head>
...
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:DropDownList ID="select" runat="server" OnSelectedIndexChanged="select_SelectedIndexChanged" AutoPostBack="True">
<asp:ListItem Value="1">...</asp:ListItem>
<asp:ListItem Value="2">...</asp:ListItem>
</asp:DropDownList>
<asp:UpdatePanel ID="UpdatePanel_test" runat="server">
<ContentTemplate>
<div id="div_test" runat="server">
</div>
<input type="text" id="hidden_test_1" runat="server" />
<input type="text" id="hidden_test_2" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="select" />
</Triggers>
</asp:UpdatePanel>
<script type="text/javascript">
var globals = {};
globals.controlIdentities = {};
globals.controlIdentities.hidden_test_1 = '<%= hidden_test_1.ClientID %>';
</script>
</form>
</body>
.jsfunction fill(id_str)
{
document.getElementById(globals.controlIdentities.hidden_test_1).value=document.getElementById(id_str).value;
}
.csprotected void Page_Load(object sender, EventArgs e)
{
int i=1;
protected void show(i);
}protected void show(int i)
{
if(i==1)
div_test.innerHtml="<input type='text' id='text_1' value='' onblur='javascript:fill(this.id);'>";
if(i==2)
div_test.innerHtml="<input type='text' id='text_2' value='' onblur='javascript:fill(this.id);'>";
}protected void select_SelectedIndexChanged(object sender, EventArgs e)
{
int selectedvalue=int.Parse(menu_test_choose.SelectedValue);
string a=hidden_test_1.Value;//这里根本取不到hidden_test_1.Value,为什么呢?
show(selectedvalue);
}
请各位高手指点
不多说,上代码,原来很复杂,我简化了下
.aspx<head>
...
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:DropDownList ID="select" runat="server" OnSelectedIndexChanged="select_SelectedIndexChanged" AutoPostBack="True">
<asp:ListItem Value="1">...</asp:ListItem>
<asp:ListItem Value="2">...</asp:ListItem>
</asp:DropDownList>
<asp:UpdatePanel ID="UpdatePanel_test" runat="server">
<ContentTemplate>
<div id="div_test" runat="server">
</div>
<input type="text" id="hidden_test_1" runat="server" />
<input type="text" id="hidden_test_2" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="select" />
</Triggers>
</asp:UpdatePanel>
<script type="text/javascript">
var globals = {};
globals.controlIdentities = {};
globals.controlIdentities.hidden_test_1 = '<%= hidden_test_1.ClientID %>';
</script>
</form>
</body>
.jsfunction fill(id_str)
{
document.getElementById(globals.controlIdentities.hidden_test_1).value=document.getElementById(id_str).value;
}
.csprotected void Page_Load(object sender, EventArgs e)
{
int i=1;
protected void show(i);
}protected void show(int i)
{
if(i==1)
div_test.innerHtml="<input type='text' id='text_1' value='' onblur='javascript:fill(this.id);'>";
if(i==2)
div_test.innerHtml="<input type='text' id='text_2' value='' onblur='javascript:fill(this.id);'>";
}protected void select_SelectedIndexChanged(object sender, EventArgs e)
{
int selectedvalue=int.Parse(menu_test_choose.SelectedValue);
string a=hidden_test_1.Value;//这里根本取不到hidden_test_1.Value,为什么呢?
show(selectedvalue);
}
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
int i=1;
protected void show(i);
}
}
这个是服务器端的方法,你好像是js里给hidden赋值的吧。这个怎么能取得到值呢。js只操作客户端。
要得到多个值可以用while(rs.read) {aa=aa+rs(0)+"|";}aa返回的是用"|"分隔开的字符串,用JS提取出来后用spilt分离出来就可以了
也谢谢LS的各位
结贴了