有两个dropdownlist:drp1和drp2
drp2的内容根据drp1选取的内容而变化
有一个label,其text是 drp1.value + drp2.value
为了实现无刷新的更新,drp1,drp2和label的值的改变用javascript在客户端实现
这里label显示的内容可以改变,但是由this.LabelID.Text取到的值却一直未变
为什么?请指点,thanks
代码如下:
<%@ Page language="c#" Codebehind="PS_Add.aspx.cs" AutoEventWireup="false" Inherits="BIMS.SubModules.ProductsManage.PSAdd" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>PSAdd</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<script>
function changeBigC( BigID )
{
var drpSmall = document.getElementById("DropDownListSmallC");
function RemoveAll(oElem)
{
var i = 0;
for( i = oElem.length; i>=0; i-- )
{
oElem.options.remove(i);
}
}
RemoveAll( drpSmall );
var oHttpReq = new ActiveXObject( "MSXML2.XMLHTTP" );
var oDoc = new ActiveXObject( "MSXML2.DOMDocument" );
oHttpReq.open( "POST", "ResponseDropChild.aspx?action=getSmallC&value=" + BigID, false );
oHttpReq.send( "" );
result = oHttpReq.responseText;
oDoc.loadXML( result );
items1 = oDoc.selectNodes( "//SmallC/Table/SmallCategory" );
items2 = oDoc.selectNodes( "//SmallC/Table/SmallID" );
var itemsLength = items1.length;
for( i = 0; i<itemsLength; i++ )
{
var newOption = document.createElement("OPTION");
newOption.text = items1(i).text;
newOption.value = items2(i).text;
drpSmall.options.add( newOption );
}
changeSmallC(document.all.DropDownListSmallC.item(document.all.DropDownListSmallC.selectedIndex).value);
}
function changeSmallC( SmallID )
{
var a = document.all;
a.LabelID.innerText = a.DropDownListBigC.item(a.DropDownListBigC.selectedIndex).value + SmallID;
getUsedID( a.LabelID.innerText );
}
function getUsedID( PC )
{
var oHttpReq = new ActiveXObject( "MSXML2.XMLHTTP" );
var oDoc = new ActiveXObject( "MSXML2.DOMDocument" );
oHttpReq.open( "POST", "ResponseDropChild.aspx?action=getUsedPSID&value=" + PC, false );
oHttpReq.send( "" );
result = oHttpReq.responseText;
oDoc.loadXML( result );
items = oDoc.selectNodes( "//UsedPSID/value" );
document.all.TBID.value = items(0).text;
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<table width="100%" border="0">
<tr>
<td> </td>
</tr>
<tr>
<td align="center">
<table width="80%" border="1">
<tr>
<td style="HEIGHT: 14px" width="25%"> <FONT face="宋体">大分类:</FONT></td>
<td style="HEIGHT: 14px" width="75%">
<asp:dropdownlist id="DropDownListBigC" runat="server"></asp:dropdownlist></td>
</tr>
<tr>
<td style="HEIGHT: 1px"> <FONT face="宋体">小分类:</FONT></td>
<td style="HEIGHT: 1px">
<asp:dropdownlist id="DropDownListSmallC" runat="server"></asp:dropdownlist></td>
</tr>
<tr>
<td> <FONT face="宋体">编号:</FONT></td>
<td>
<asp:label id="LabelID" runat="server"></asp:label><asp:textbox id="TBID" runat="server" Width="48px"></asp:textbox><asp:requiredfieldvalidator id="RequiredFieldValidator1" runat="server" ControlToValidate="TBID" ErrorMessage="请输入3位数字编号"></asp:requiredfieldvalidator><asp:regularexpressionvalidator id="RegularExpressionValidator1" runat="server" ControlToValidate="TBID" ErrorMessage="必须位3位数字"
ValidationExpression="\d{3}$"></asp:regularexpressionvalidator></td>
</tr>
<tr>
<td style="HEIGHT: 27px"> <FONT face="宋体">显示顺序:</FONT></td>
<td style="HEIGHT: 27px">
<asp:textbox id="TBShowOrder" runat="server" Width="32px">1</asp:textbox><asp:requiredfieldvalidator id="RequiredFieldValidator2" runat="server" ControlToValidate="TBShowOrder" ErrorMessage="请输入显示顺序,小值排列在前"></asp:requiredfieldvalidator><asp:regularexpressionvalidator id="RegularExpressionValidator2" runat="server" ControlToValidate="TBShowOrder"
ErrorMessage="必须为数字" ValidationExpression="^[0-9]*[1-9][0-9]*$"></asp:regularexpressionvalidator></td>
</tr>
<tr>
<td> <FONT face="宋体">图片:</FONT></td>
<td> <INPUT id="imgFile" style="WIDTH: 184px; HEIGHT: 22px" type="file" onchange="img.src=this.value;"
size="11" name="imgFile" runat="server"></td>
</tr>
<tr>
<td align="center" colSpan="2">
<asp:image id="img" runat="server"></asp:image></td>
</tr>
<tr>
<td align="center" colSpan="2">
<asp:button id="ButtonAdd" runat="server" Text="添加"></asp:button></td>
</tr>
</table>
</td>
</tr>
</table>
<FONT face="宋体"></FONT>
</form>
</body>
</HTML>//响应添加,将用户输入的内容添加到数据库
private void ButtonAdd_Click(object sender, System.EventArgs e)
{
string strImagePath = imgFile.PostedFile.FileName;
if( strImagePath == string.Empty )
{
Response.Write("<script>alert('请选择产品系列图片!')</script>");
return;
} int index = strImagePath.LastIndexOf(".");
string fileName = this.LabelID.Text + this.TBID.Text + strImagePath.Substring(index);
strImagePath = @"../../pic/PS/" + fileName;
imgFile.PostedFile.SaveAs( Server.MapPath( strImagePath ) ); string PC = this.LabelID.Text;//this.DropDownListBigC.SelectedItem.Value + this.DropDownListSmallC.SelectedItem.Value;这里this.LabelID.Text的取值未改变 Database db = new Database();
SqlParameter[] prms = {
db.MakeInParam( "@ID", SqlDbType.VarChar, 5, PC + this.TBID.Text ),
db.MakeInParam( "@ImagePath", SqlDbType.VarChar, 64, @"pic/PS/" + fileName ),
db.MakeInParam( "@ShowOrder", SqlDbType.Int, 4, this.TBShowOrder.Text ),
db.MakeInParam( "@SmallCategory", SqlDbType.NVarChar, 8, this.DropDownListSmallC.SelectedItem.Text )
};
db.RunProc( "sp_PS_Add", prms );
}
drp2的内容根据drp1选取的内容而变化
有一个label,其text是 drp1.value + drp2.value
为了实现无刷新的更新,drp1,drp2和label的值的改变用javascript在客户端实现
这里label显示的内容可以改变,但是由this.LabelID.Text取到的值却一直未变
为什么?请指点,thanks
代码如下:
<%@ Page language="c#" Codebehind="PS_Add.aspx.cs" AutoEventWireup="false" Inherits="BIMS.SubModules.ProductsManage.PSAdd" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>PSAdd</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<script>
function changeBigC( BigID )
{
var drpSmall = document.getElementById("DropDownListSmallC");
function RemoveAll(oElem)
{
var i = 0;
for( i = oElem.length; i>=0; i-- )
{
oElem.options.remove(i);
}
}
RemoveAll( drpSmall );
var oHttpReq = new ActiveXObject( "MSXML2.XMLHTTP" );
var oDoc = new ActiveXObject( "MSXML2.DOMDocument" );
oHttpReq.open( "POST", "ResponseDropChild.aspx?action=getSmallC&value=" + BigID, false );
oHttpReq.send( "" );
result = oHttpReq.responseText;
oDoc.loadXML( result );
items1 = oDoc.selectNodes( "//SmallC/Table/SmallCategory" );
items2 = oDoc.selectNodes( "//SmallC/Table/SmallID" );
var itemsLength = items1.length;
for( i = 0; i<itemsLength; i++ )
{
var newOption = document.createElement("OPTION");
newOption.text = items1(i).text;
newOption.value = items2(i).text;
drpSmall.options.add( newOption );
}
changeSmallC(document.all.DropDownListSmallC.item(document.all.DropDownListSmallC.selectedIndex).value);
}
function changeSmallC( SmallID )
{
var a = document.all;
a.LabelID.innerText = a.DropDownListBigC.item(a.DropDownListBigC.selectedIndex).value + SmallID;
getUsedID( a.LabelID.innerText );
}
function getUsedID( PC )
{
var oHttpReq = new ActiveXObject( "MSXML2.XMLHTTP" );
var oDoc = new ActiveXObject( "MSXML2.DOMDocument" );
oHttpReq.open( "POST", "ResponseDropChild.aspx?action=getUsedPSID&value=" + PC, false );
oHttpReq.send( "" );
result = oHttpReq.responseText;
oDoc.loadXML( result );
items = oDoc.selectNodes( "//UsedPSID/value" );
document.all.TBID.value = items(0).text;
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<table width="100%" border="0">
<tr>
<td> </td>
</tr>
<tr>
<td align="center">
<table width="80%" border="1">
<tr>
<td style="HEIGHT: 14px" width="25%"> <FONT face="宋体">大分类:</FONT></td>
<td style="HEIGHT: 14px" width="75%">
<asp:dropdownlist id="DropDownListBigC" runat="server"></asp:dropdownlist></td>
</tr>
<tr>
<td style="HEIGHT: 1px"> <FONT face="宋体">小分类:</FONT></td>
<td style="HEIGHT: 1px">
<asp:dropdownlist id="DropDownListSmallC" runat="server"></asp:dropdownlist></td>
</tr>
<tr>
<td> <FONT face="宋体">编号:</FONT></td>
<td>
<asp:label id="LabelID" runat="server"></asp:label><asp:textbox id="TBID" runat="server" Width="48px"></asp:textbox><asp:requiredfieldvalidator id="RequiredFieldValidator1" runat="server" ControlToValidate="TBID" ErrorMessage="请输入3位数字编号"></asp:requiredfieldvalidator><asp:regularexpressionvalidator id="RegularExpressionValidator1" runat="server" ControlToValidate="TBID" ErrorMessage="必须位3位数字"
ValidationExpression="\d{3}$"></asp:regularexpressionvalidator></td>
</tr>
<tr>
<td style="HEIGHT: 27px"> <FONT face="宋体">显示顺序:</FONT></td>
<td style="HEIGHT: 27px">
<asp:textbox id="TBShowOrder" runat="server" Width="32px">1</asp:textbox><asp:requiredfieldvalidator id="RequiredFieldValidator2" runat="server" ControlToValidate="TBShowOrder" ErrorMessage="请输入显示顺序,小值排列在前"></asp:requiredfieldvalidator><asp:regularexpressionvalidator id="RegularExpressionValidator2" runat="server" ControlToValidate="TBShowOrder"
ErrorMessage="必须为数字" ValidationExpression="^[0-9]*[1-9][0-9]*$"></asp:regularexpressionvalidator></td>
</tr>
<tr>
<td> <FONT face="宋体">图片:</FONT></td>
<td> <INPUT id="imgFile" style="WIDTH: 184px; HEIGHT: 22px" type="file" onchange="img.src=this.value;"
size="11" name="imgFile" runat="server"></td>
</tr>
<tr>
<td align="center" colSpan="2">
<asp:image id="img" runat="server"></asp:image></td>
</tr>
<tr>
<td align="center" colSpan="2">
<asp:button id="ButtonAdd" runat="server" Text="添加"></asp:button></td>
</tr>
</table>
</td>
</tr>
</table>
<FONT face="宋体"></FONT>
</form>
</body>
</HTML>//响应添加,将用户输入的内容添加到数据库
private void ButtonAdd_Click(object sender, System.EventArgs e)
{
string strImagePath = imgFile.PostedFile.FileName;
if( strImagePath == string.Empty )
{
Response.Write("<script>alert('请选择产品系列图片!')</script>");
return;
} int index = strImagePath.LastIndexOf(".");
string fileName = this.LabelID.Text + this.TBID.Text + strImagePath.Substring(index);
strImagePath = @"../../pic/PS/" + fileName;
imgFile.PostedFile.SaveAs( Server.MapPath( strImagePath ) ); string PC = this.LabelID.Text;//this.DropDownListBigC.SelectedItem.Value + this.DropDownListSmallC.SelectedItem.Value;这里this.LabelID.Text的取值未改变 Database db = new Database();
SqlParameter[] prms = {
db.MakeInParam( "@ID", SqlDbType.VarChar, 5, PC + this.TBID.Text ),
db.MakeInParam( "@ImagePath", SqlDbType.VarChar, 64, @"pic/PS/" + fileName ),
db.MakeInParam( "@ShowOrder", SqlDbType.Int, 4, this.TBShowOrder.Text ),
db.MakeInParam( "@SmallCategory", SqlDbType.NVarChar, 8, this.DropDownListSmallC.SelectedItem.Text )
};
db.RunProc( "sp_PS_Add", prms );
}
解决方案 »
- 请教 asp.net 连接 mysql 的连接串问题
- 服务器链接问题
- input如何给TextBox赋值
- 如何将DropDownList1.SelectedItem.Value作为参数在同页面使用?
- QQ空间中的成功提示窗体实现
- 整合两个系统与跨域访问的原理,麻烦高手解释一下
- |M| 再开一贴 给DataGrid按钮添加对话框事件,升级版问题: 急啊,怎么也写不对
- 请问Access的Memo字段对应OleDbType的哪一个成员?
- 整站开发(限上海地区 使用ASP.NET)
- 在ASP.NET中如何根据页面传过来的字符串(类的名字),动态调用类(不用判断语句,由程序自动调用)
- 求datagrid导出到excel范例
- 怎么样读取自动生成的TEXTBOX的值
http://community.csdn.net/Expert/topic/3981/3981708.xml?temp=.4311792