首页 新闻 会员 周边 捐助

前台css调用后台函数总是出错

0
悬赏园豆:10 [已解决问题] 解决于 2014-09-11 15:02

前台代码:

<input id="Button1" type="button" value="button" onclick="<%=s('文档区') %>">" />

后台代码

public string s(string str)
{
sqlFormat = "Source.SourceFormat ='" + str + "'";
SetSourcelist();
return "";
}

错误:

“/”应用程序中的服务器错误。


 

编译错误

说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 

编译器错误消息: CS1012: 字符文本中的字符太多

源错误:

 
行 173:                        <span class="spanStudyFormat" style="top: -16px">编码区</span>
行 174:                    </p>
行 175:                    <input id="Button1" type="button" value="button" onclick="<%=s('文档区') %>">" />
行 176:                </div>
行 177:            </div>


源文件: c:\Users\Jia\Desktop\上传\交大服务外包人才培训平台\服务外包人才培训平台\1项目实战\工程\代码\JD2011.SST\Web\home.aspx    行: 175 

晓爽的主页 晓爽 | 初学一级 | 园豆:130
提问于:2014-09-11 14:01
< >
分享
最佳答案
0

<input id="Button1" type="button" value="button" onclick="<%=s("文档区") %>" />

我怎么觉得这样写才对呢.....是C#吗?

收获园豆:10
焰£天琊 | 菜鸟二级 |园豆:418 | 2014-09-11 14:22

是asp.net的,我试了用button,还是不行

晓爽 | 园豆:130 (初学一级) | 2014-09-11 14:25

@晓爽: 呃,input的onclick只能调用页面上的js方法,你想调用后台建议用aspbutton,话说你能把想做什么说一下吗?你这种实现方式好奇怪的说

焰£天琊 | 园豆:418 (菜鸟二级) | 2014-09-11 14:29

@焰£天琊: 视频区和后面的东西,其实是两个筛选条件,一个是文件的内容,一个是文件的属性,我想获取这两个值,然后再从数据库里面把值取出来,在下面显示,用aspbutton点击之后总是会刷新页面

晓爽 | 园豆:130 (初学一级) | 2014-09-11 14:34

@晓爽: 那试着用updatepanel或者ajax呢?

焰£天琊 | 园豆:418 (菜鸟二级) | 2014-09-11 14:36

@焰£天琊: ajax找了半天也没用出来

晓爽 | 园豆:130 (初学一级) | 2014-09-11 14:38

@晓爽: 意思是ajax不会是吗?

焰£天琊 | 园豆:418 (菜鸟二级) | 2014-09-11 14:40

@焰£天琊: 嗯,基础太差,看不懂怎么用

晓爽 | 园豆:130 (初学一级) | 2014-09-11 14:40

@晓爽: http://www.w3cschool.cn/ajax_ajax.html 你可以先去看看这个

焰£天琊 | 园豆:418 (菜鸟二级) | 2014-09-11 14:44

@焰£天琊: 嗯,再看了

晓爽 | 园豆:130 (初学一级) | 2014-09-11 14:49

@晓爽: 这个是jquery的方法,得在你项目里放jquery的包,然后跟后台代码相联系的方式有多种,最简单的是页面内的webservice,加个标签,跟在标签后写方法就行了

焰£天琊 | 园豆:418 (菜鸟二级) | 2014-09-11 14:52

@焰£天琊: 老师跟我说也是这样,我现在还在想怎么做,请问下有没有实例,我想看看代码到底怎么写

晓爽 | 园豆:130 (初学一级) | 2014-09-11 14:54

@晓爽:        

  [System.Web.Services.WebMethod]
        public string getabc(string a) {
            return a;
        }

            var ajaxUrl = "你的页面地址/getabc";
            var a = '0';//参数
            $.ajax({
                type: "POST",
                url: ajaxUrl,
                data: { action: "changeState", a: a },
                dataType: 'text',
                success: function (result) {
                    switch (result) {
                        case "0":
                            alert(result)
                            break;
                        default:
                            alert(result)
                            break;
                    }
                }
            });
        }

焰£天琊 | 园豆:418 (菜鸟二级) | 2014-09-11 15:01

@焰£天琊: 谢啦

晓爽 | 园豆:130 (初学一级) | 2014-09-11 15:02

@晓爽: 乐意之至

焰£天琊 | 园豆:418 (菜鸟二级) | 2014-09-11 15:02

@焰£天琊: 还在吗,这个局部刷新的代码我搞定了,页面的确是局部刷新,请问下后台代码怎么获取值,比如传上去的a

晓爽 | 园豆:130 (初学一级) | 2014-09-11 15:27

@晓爽: 那个data就是参数列,跟后台方法里的参数名称是一致的,有一个传一个

焰£天琊 | 园豆:418 (菜鸟二级) | 2014-09-11 15:30

@焰£天琊: 还有就是,页面局部刷新的很奇怪,每次点击按钮都是跳到页面顶端

晓爽 | 园豆:130 (初学一级) | 2014-09-11 15:32

@晓爽: 如果是这个样子的话,看看你代码里是不是设置了页面滚动,不然的话还是刷新了页面啊

焰£天琊 | 园豆:418 (菜鸟二级) | 2014-09-11 15:34

@焰£天琊: 代码是这样

public partial class home : System.Web.UI.Page
{
public string sqlFormat = "Source.SourceFormat ='视频区'";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
SetTeacherList();
SetSourcelist();

}
}

public void SetTeacherList() {
JD2011.SST.BLL.TeacherInfo bllteacher = new BLL.TeacherInfo();
showTeacherList.DataSource= bllteacher.GetSpecialList("TeaImage,TeaName", "TeacherInfo","TeaId<=11");
showTeacherList.DataBind();
}

public void SetSourcelist()
{
SetStudyDatdaTypeList(clientList, " and Source.SourceTypeId=SourceType.SourceTypeId", sqlFormat);
}

public void SetStudyDatdaTypeList(ListView SourceList, string strSourceTypeName,string strSourceFormat)
{
string sqlCondition="Source.SourceId=SourceCollect.SourceId and + Source.UserId=UserInfo.UserId and " ;
JD2011.SST.BLL.Source bllSource = new BLL.Source();
SourceList.DataSource = bllSource.GetSpecialList("UserName,SourceName,COUNT(1) as times ", "UserInfo,Source,SourceType,SourceCollect", sqlCondition + strSourceFormat + strSourceTypeName + " group by SourceName,UserName");
SourceList.DataBind();
}


}
}

应该是局部刷新了把,因为图片都没有重新加载

晓爽 | 园豆:130 (初学一级) | 2014-09-11 15:40

@晓爽: 按照你后台代码来看,应该是刷新的,可能是因为有图片缓存,要看有没有刷新,在页面加载的时候弹出个框就知道了

焰£天琊 | 园豆:418 (菜鸟二级) | 2014-09-11 15:46

@焰£天琊: 是这个框吗

晓爽 | 园豆:130 (初学一级) | 2014-09-11 15:49

@晓爽: 看不到图片

焰£天琊 | 园豆:418 (菜鸟二级) | 2014-09-11 15:53

@焰£天琊: 我点击刷新弹出来一个框,上面写是否提交表单

晓爽 | 园豆:130 (初学一级) | 2014-09-11 15:54

@焰£天琊: 确认重新提交表单

晓爽 | 园豆:130 (初学一级) | 2014-09-11 15:55

@焰£天琊: 这个就是刷新了,刚才给你的代码有点问题,换一个给你

html

function getabc() {                         $.ajax({

                //要用post方式

                type: "POST",

                url: "PurchaserManage.aspx/getabc",

                dataType: "json",  //dataType: "json",                                         

                data:  "{ 'ID':'1'}", //把要调用的函数名作为参数传递到服务器就好了 //参数(如果没有参数:null)

                //方法所在页面和方法名Data.aspx                        

                contentType: "application/json; charset=utf-8",

                success: function (data) {

                    //返回的数据用data.d获取内容  json                            

                    alert("data:" + data.d);

                },

                error: function (err) {

                    alert("err:" + err);

                }

            });         }

 

后台

        [System.Web.Services.WebMethod]
        public static string getabc(string ID)
        {
            if (ID == "1")
            {
                return ID;
            }
            else
            {
                return "0";
            }
        }

焰£天琊 | 园豆:418 (菜鸟二级) | 2014-09-11 15:56

@焰£天琊: ajax的思路是你把参数传到服务器调用目标方法,然后服务器把数据回传过来,你在页面上处理数据,把要展现的东西变成html代码直接放在你想放的位置

焰£天琊 | 园豆:418 (菜鸟二级) | 2014-09-11 15:57

@焰£天琊:嗯,知道了

晓爽 | 园豆:130 (初学一级) | 2014-09-11 17:56
其他回答(1)
0

onclick='<%=s("文档区") %>' 改成这样,方法要的是字符串参数,你用单引号会被认为是字符而不是字符串,所以有问题了。

Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-09-11 14:12

改了之后错误是没有,可是还是没有调用后台的函数啊,不知道怎么回事

支持(0) 反对(0) 晓爽 | 园豆:130 (初学一级) | 2014-09-11 14:16

@晓爽: 肯定是调用了,只是结果跟你的预期不一致而已,你可以在后台方法里加个断点,跟下代码就知道是哪里的问题了。

支持(0) 反对(0) Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-09-11 17:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册