如题:
前台代码:
<asp:Button id="btn_AddClient" runat="server" CssClass="redbuttoncss" Text="添加客户" OnClick="btn_AddClient_Click"></asp:Button>.cs代码: private void btn_AddClient_Click(object sender, System.EventArgs e)//添加客户
{
Response.Write("<script>javascript:window.open('Client.aspx','_blank');</script>");
}出现的错误是:第一个参数的扩展方法“btn_AddClient_Click”(是否缺少 using 指令或程序集引用?)
如何搞好它啊?在线等,傻傻地等
前台代码:
<asp:Button id="btn_AddClient" runat="server" CssClass="redbuttoncss" Text="添加客户" OnClick="btn_AddClient_Click"></asp:Button>.cs代码: private void btn_AddClient_Click(object sender, System.EventArgs e)//添加客户
{
Response.Write("<script>javascript:window.open('Client.aspx','_blank');</script>");
}出现的错误是:第一个参数的扩展方法“btn_AddClient_Click”(是否缺少 using 指令或程序集引用?)
如何搞好它啊?在线等,傻傻地等
<asp:Button id="btn_AddClient" runat="server" CssClass="redbuttoncss" Text="添加客户"
OnClick="btn_AddClient_Click"/>
事件最好不要手动写,尽量用自动生成把事件的访问修饰符改了试试private ==》protected不出意外应该是这个问题
//将后台代码改为:
protected void btn_AddClient_Click(object sender, EventArgs e)
{
Response.Write("<script>javascript:window.open('Client.aspx','_blank');</script>");
}
你写成OnClick="btn_AddClient_Click",它把OnClick当成扩展方法了。
<asp:Button id="btn_AddClient" runat="server" CssClass="redbuttoncss" Text="添加客户" OnClick="btn_AddClient_Click"></asp:Button>
这样跟<asp:Button id="btn_AddClient" runat="server" CssClass="redbuttoncss" Text="添加客户" OnClick="btn_AddClient_Click"/>
的写法都是正确的另外VS2008里只有OnClick我不知道onclick是不是也可以还有
private void btn_AddClient_Click(object sender, EventArgs e)
换成
protected void btn_AddClient_Click(object sender, EventArgs e)
也还是不行太头痛了,很感谢大家回复,继续等.
检查页面头部的Inherits是否对应代码类
<asp:Button id="btn_Del" runat="server" CssClass="redbuttoncss" Text="删 除" OnClick="btn_Del_Click"></asp:Button>
<asp:Button id="btn_AddClient" runat="server" CssClass="redbuttoncss" Text="添加客户" OnClick="btn_AddClient_Click"></asp:Button>
<asp:Button id="btn_AddLinkman" runat="server" CssClass="redbuttoncss" Text="添加联络人" OnClick="btn_AddLinkman_Click"></asp:Button>
<asp:Button id="btn_AddContact" runat="server" CssClass="redbuttoncss" Text="添加接触" OnClick="btn_AddContact_Click"></asp:Button>.cs文件:
头:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
....public partial class ClientListView : System.Web.UI.Page
{
.....
主要部分:
protected void btn_AddLinkman_Click(object sender, EventArgs e)//添加联系人
{
//遍历datagrid得到选中的最后一个checkbox的id
string selectedstring = GetSelectedItemID("cbx1");
string[] arrselectedstring = selectedstring.Split(',');
string id = arrselectedstring[arrselectedstring.GetLength(0) - 1];
Response.Write("<script>javascript:window.open('Linkman.aspx?ClientID=" + id + "&from=ClientList','_blank');</script>");
} protected void btn_AddContact_Click(object sender, EventArgs e)//添加接触
{
//遍历datagrid得到选中的最后一个checkbox的id
string selectedstring = GetSelectedItemID("cbx1");
string[] arrselectedstring = selectedstring.Split(',');
string id = arrselectedstring[arrselectedstring.GetLength(0) - 1];
Response.Write("<script>javascript:window.open('ClientContact_thisWeek.aspx?ClientID=" + id + "','_blank');</script>");
} protected void btn_AddClient_Click(object sender,EventArgs e)//添加客户
{
Response.Write("<script>javascript:window.open('Client.aspx','_blank');</script>");
} protected void btn_Del_Click(object sender, EventArgs e)//删除
{
string selectedstring = "";
foreach (DataGridItem dgi in dgd_Client.Items)
{
for (int i = 0; i < dgi.Cells[0].Controls.Count; i++)
{
if (dgi.Cells[0].Controls[i].GetType().ToString() == "System.Web.UI.WebControls.CheckBox")
{
if (((CheckBox)dgi.Cells[0].Controls[i]).Checked == true)
{
selectedstring += dgd_Client.DataKeys[dgi.ItemIndex].ToString() + ",";
}
}
}
}
我就不写上来了
不是同一的CMS_base么?
应该是
Inherits="CMS_base.ClientListView"吧?你在同目录下新建个aspx页面,然后对比下头部,看看命名空间是不是一样的
是不是这个按钮的AutoPostBack属性没有设置为True啊
{
Response.Write("<script>javascript:window.open('Client.aspx','_blank');</script>");
}
私有的 你能访问到?
就算不是这个原因 你事件也会报错
就是这个问题。
控件已经封装好的事件访问修饰符一般都是protected。
如果要把它改为private,编译时会默认为扩展方法。
结果运行该页面的时候竟然跟上面一样的错误Button_Click(是否缺少 using 指令或程序集引用?
这个版本的软件开发经历了VS2003 VS2005(当然不是我做的) 现在我用VS2008来升级简直是悲剧
还是报错我都快想从十一楼跳下去了
也许你同命名空间下的某个普通类和你的Web窗体类同名
导致找到的Web窗体找的普通类里面的方法。
你找找看有没有同名的类吧
private改成protected这个也是必须的,访问级别private前台访问不到