我用了一个js的弹出层,里面放了一个dropdownlist控件,为什么每次我都不能取到选中的当前值,服务器端取到的都是原来的值。有什么解决方案吗?
asp.net前台代码(弹出层的div):
<div id="test" style="display:none; text-align:center ">
<asp:DropDownList ID="ddlCategory" runat="server" > </asp:DropDownList>
<asp:LinkButton ID="LinkButton2" runat="server" onclick="LinkButton2_Click" Text="转移"></asp:LinkButton>
</div>
cs页面代码:
if (!IsPostBack)
{
BindDataToDDL();
}
protected void BindDataToDDL()
{
绑定数据到dropdownlist....
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
string test = ddlCategory.SelectedValue.ToString()
}
页面首次加载的时候的值是“6”,后来我选择了别的,为什么取到的值还是“6”??、!
js弹出层代码:popWin("将选择的供应商转移分类", div, 200, 60); function popWin(title, msg, w, h){
var objSelect = document.getElementsByTagName("select"); //捕捉所有select标签
for(var j=0;j<objSelect.length;j++){
//设为不显示,再进行下面操作
objSelect[j].style.display="none";
}
var iWidth = document.documentElement.clientWidth;
var iHeight = document.documentElement.clientHeight;
var bgObj = document.createElement("div");
bgObj.id = "BgDiv";
bgObj.style.width = iWidth+"px";
bgObj.style.height = Math.max(document.body.clientHeight, iHeight)+"px";
document.body.appendChild(bgObj);
var msgObj=document.createElement("div");
msgObj.id = "MsgDiv";
msgObj.style.top = (iHeight-h)/2+"px";
msgObj.style.left = (iWidth-w)/2+"px";
msgObj.style.width = w+"px";
msgObj.style.height = h+"px";
document.body.appendChild(msgObj); var table = document.createElement("table");
msgObj.appendChild(table);
table.id = "MsgDivTable";
var tr = table.insertRow(-1);
var titleBar = tr.insertCell(-1);
tr.id = "MsgTitle";
titleBar.id = "MsgDivTitle";
titleBar.innerHTML = title;
var moveX = 0;
var moveY = 0;
var moveTop = 0;
var moveLeft = 0;
var moveable = false;
var docMouseMoveEvent = document.onmousemove;
var docMouseUpEvent = document.onmouseup;
titleBar.onmousedown = function() {
var evt = getEvent();
moveable = true;
moveX = evt.clientX;
moveY = evt.clientY;
moveTop = parseInt(msgObj.style.top);
moveLeft = parseInt(msgObj.style.left);
document.onmousemove = function() {
if (moveable) {
var evt = getEvent();
var x = moveLeft + evt.clientX - moveX;
var y = moveTop + evt.clientY - moveY;
if ( x > 0 &&( x + w < iWidth) && y > 0 && (y + h < iHeight) ) {
msgObj.style.left = x + "px";
msgObj.style.top = y + "px";
}
}
};
document.onmouseup = function () {
if (moveable) {
document.onmousemove = docMouseMoveEvent;
document.onmouseup = docMouseUpEvent;
moveable = false;
moveX = 0;
moveY = 0;
moveTop = 0;
moveLeft = 0;
}
};
} var closeBtn = tr.insertCell(-1);
closeBtn.id = "MsgDivClose";
closeBtn.innerHTML = "<span title='关闭'>×</span>";
closeBtn.onclick = function(){
for(var j=0;j<objSelect.length;j++){
//再给select显出来
objSelect[j].style.display="";
}
document.body.removeChild(bgObj);
document.body.removeChild(msgObj);
} var msgBox = table.insertRow(-1).insertCell(-1);
msgBox.id = "MsgBox";
msgBox.colSpan = "2";
msgBox.innerHTML = msg;
// 获得事件Event对象,用于兼容IE和FireFox
function getEvent() {
return window.event || arguments.callee.caller.arguments[0];
}
}function MsgDivClose(){
$("#MsgDivClose").trigger("click");
}
asp.net前台代码(弹出层的div):
<div id="test" style="display:none; text-align:center ">
<asp:DropDownList ID="ddlCategory" runat="server" > </asp:DropDownList>
<asp:LinkButton ID="LinkButton2" runat="server" onclick="LinkButton2_Click" Text="转移"></asp:LinkButton>
</div>
cs页面代码:
if (!IsPostBack)
{
BindDataToDDL();
}
protected void BindDataToDDL()
{
绑定数据到dropdownlist....
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
string test = ddlCategory.SelectedValue.ToString()
}
页面首次加载的时候的值是“6”,后来我选择了别的,为什么取到的值还是“6”??、!
js弹出层代码:popWin("将选择的供应商转移分类", div, 200, 60); function popWin(title, msg, w, h){
var objSelect = document.getElementsByTagName("select"); //捕捉所有select标签
for(var j=0;j<objSelect.length;j++){
//设为不显示,再进行下面操作
objSelect[j].style.display="none";
}
var iWidth = document.documentElement.clientWidth;
var iHeight = document.documentElement.clientHeight;
var bgObj = document.createElement("div");
bgObj.id = "BgDiv";
bgObj.style.width = iWidth+"px";
bgObj.style.height = Math.max(document.body.clientHeight, iHeight)+"px";
document.body.appendChild(bgObj);
var msgObj=document.createElement("div");
msgObj.id = "MsgDiv";
msgObj.style.top = (iHeight-h)/2+"px";
msgObj.style.left = (iWidth-w)/2+"px";
msgObj.style.width = w+"px";
msgObj.style.height = h+"px";
document.body.appendChild(msgObj); var table = document.createElement("table");
msgObj.appendChild(table);
table.id = "MsgDivTable";
var tr = table.insertRow(-1);
var titleBar = tr.insertCell(-1);
tr.id = "MsgTitle";
titleBar.id = "MsgDivTitle";
titleBar.innerHTML = title;
var moveX = 0;
var moveY = 0;
var moveTop = 0;
var moveLeft = 0;
var moveable = false;
var docMouseMoveEvent = document.onmousemove;
var docMouseUpEvent = document.onmouseup;
titleBar.onmousedown = function() {
var evt = getEvent();
moveable = true;
moveX = evt.clientX;
moveY = evt.clientY;
moveTop = parseInt(msgObj.style.top);
moveLeft = parseInt(msgObj.style.left);
document.onmousemove = function() {
if (moveable) {
var evt = getEvent();
var x = moveLeft + evt.clientX - moveX;
var y = moveTop + evt.clientY - moveY;
if ( x > 0 &&( x + w < iWidth) && y > 0 && (y + h < iHeight) ) {
msgObj.style.left = x + "px";
msgObj.style.top = y + "px";
}
}
};
document.onmouseup = function () {
if (moveable) {
document.onmousemove = docMouseMoveEvent;
document.onmouseup = docMouseUpEvent;
moveable = false;
moveX = 0;
moveY = 0;
moveTop = 0;
moveLeft = 0;
}
};
} var closeBtn = tr.insertCell(-1);
closeBtn.id = "MsgDivClose";
closeBtn.innerHTML = "<span title='关闭'>×</span>";
closeBtn.onclick = function(){
for(var j=0;j<objSelect.length;j++){
//再给select显出来
objSelect[j].style.display="";
}
document.body.removeChild(bgObj);
document.body.removeChild(msgObj);
} var msgBox = table.insertRow(-1).insertCell(-1);
msgBox.id = "MsgBox";
msgBox.colSpan = "2";
msgBox.innerHTML = msg;
// 获得事件Event对象,用于兼容IE和FireFox
function getEvent() {
return window.event || arguments.callee.caller.arguments[0];
}
}function MsgDivClose(){
$("#MsgDivClose").trigger("click");
}
解决方案 »
- jquery dialog响应问题
- gridview删除数据时只有等页面重新刷新后才能看到效果!,请高手帮忙!!在线等待
- 接口是不能实例化的,但是我想调用接口该怎么用啊
- 数据蒸发掉了
- asp.net2003 安装问题
- 菜也要过中秋!~~关于treeview连数据库的问题(UP都有分)
- 请高手进来研究一下,关于能同时更新数据库,并生成EXcel表问题?有什么好的想法都可以谈谈,今天晚17时结贴!
- 动态加载文本框取值?
- 在IIS上把网站挂上报错
- iis中设置网站启动就运行Global.asax中的Application_Start方法
- 点击一个HyperLink控件,打开一个新的tab。
- 关于Request.QueryString传值乱码问题
1,
在form里面加
<form id="form1" runat="server">
<asp:HiddenField ID="xx" runat="server" />然后绑定ddlCategory后加
ddlCategory.Attributes.Add("onchange", "document.getElementById('" + xx.ClientID + "').value=this.value");得到的方法采用 xx.Value
方法2:
msgBox.innerHTML = msg;
$("#test").html("")加上这个,