为什么我在前台页面中没法取到值?
我在前台定义了一个模板列,如下:<asp:TemplateField>
<ItemTemplate>
<a onclick="ShowWindowDialog({Url:'WMSCurrentStockPop.aspx?data=<%# this.UrlEncrypt("InvCode="+DataBinder.Eval(Container.DataItem,"cInvCode")+"&InvName="+DataBinder.Eval(Container.DataItem,"cInvName")+"&SystemID=" + this.ddlCorp.SelectedValue + "&WhCode=" + GetWhCode()) %>',Width:880,Height:525})" style="cursor: pointer;"><font color="blue">现存量</font></a>
</ItemTemplate>
<HeaderStyle Font-Bold="True" HorizontalAlign="center" />
<ItemStyle HorizontalAlign="center" Width="40px" />
</asp:TemplateField>
在后台定义了GetWhCode()方法如下:
public string GetWhCode()
{
string result = this.ddlWarehouse.SelectedValue;
return result;
}
这里前面两个参数InvCode、InvName都是GridView中的值,而后面两个个参数SystemID、WhCode是页面上其他控件的值。我本来是想将控件ddlWarehouse的SelectedValue通过参数WhCode传给'WMSCurrentStockPop.aspx。
现在的问题是:
第一次传入的值是正确的,第二次及以后改变ddlWarehouse的SelectedValue,传入后取出均是第一的那个值。比如页面打开,我选择ddlWarehouse为“成品仓库”,此时通过参数传入取出是没问题的。然后我改变ddlWarehouse的选择项为“办公用品库”,结果通过参数传入取出时,仍然是“成品仓库”。为什么没改变呢。我已经设置ddlWarehouse的AutoPostBack="True"了。
不知道是什么原因导致的,请支招,谢谢。 --------------------编程问答-------------------- 要在databound事件里面先find去找到你的ddlWarehouse控件,然后再this.ddlWarehouse.SelectedValue;取值。
LZ可以断点调试一下,如果LZ前台脚本厉害的话建议写脚本,使用后台容易刷页面可能会带来一些不
必要的麻烦。
补充:.NET技术 , ASP.NET