Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问runat=";服务器";WebMethod中的控件id_C#_Jquery_Asp.net - Fatal编程技术网

C# 访问runat=";服务器";WebMethod中的控件id

C# 访问runat=";服务器";WebMethod中的控件id,c#,jquery,asp.net,C#,Jquery,Asp.net,html代码是 <script type="text/jscript"> function ajaxcall() { $.ajax({ type: "POST", url: "index.aspx/lvimgclick", contentType: "application/json; charset=utf-8", data: JSON.stringify({ value: "test" }), dataType: "js

html代码是

<script type="text/jscript">
function ajaxcall() {
     $.ajax({
     type: "POST",
     url: "index.aspx/lvimgclick",
     contentType: "application/json; charset=utf-8",
     data: JSON.stringify({ value: "test" }),
     dataType: "json",      
    });
};
</script>

<img src='images/img1.jpg' onclick='return ajaxcall();' />  // calling script

<asp:LinkButton ID="lvlink1" OnClick="lvimg1_Click" CssClass="lv-under" runat="server"  >
<asp:Image ID="lvimg1" runat="server" ImageUrl="~/images/spacer.gif" />

<asp:LinkButton ID="lvlink2" OnClick="lvimg2_Click" CssClass="lv-under" runat="server"  >
<asp:Image ID="lvimg2" runat="server" ImageUrl="~/images/spacer.gif" />

<asp:LinkButton ID="lvlink3" OnClick="lvimg3_Click" CssClass="lv-under" runat="server"  >
<asp:Image ID="lvimg3" runat="server" ImageUrl="~/images/spacer.gif" />

<asp:LinkButton ID="lvlink4" OnClick="lvimg4_Click" CssClass="lv-under" runat="server"  >
<asp:Image ID="lvimg4" runat="server" ImageUrl="~/images/spacer.gif" />
我想要的是:

[WebMethod]
public static string lvimgclick()
{      
    lvimg1_Click(null, null);
    return "hi";
}


我们该怎么办?还必须使用lvimg1\u单击(null,null)lvlink1.CssClass=“lv-under1”在许多函数中不是webmethod

如果您使用jquery,您可以像下面这样做

 $.ajax({
   type: "POST",
   url: "index.aspx/lvimgclick",
   contentType: "application/json; charset=utf-8",
   data: JSON.stringify({ value: "test" }),
   dataType: "json", 
   success:function(result){

     if(result.cssclass)
     {
       $('#<%= lvlink1.ClientID %>').addClass(result.cssclass);
     }
   }     
  });
注:

有时您可能需要使用框架添加的
d
访问数据。如
result.d.cssclass

编辑:

如果您想更新多个链接按钮,请在aspx中为其定义一个公共css类

<asp:LinkButton ID="lnk1" runat="server" CssClass="menu" Text="Home" />
<asp:LinkButton ID="lnk2" runat="server" CssClass="menu" Text="AboutUs" />

我认为你无法访问。您所能做的就是读取请求并在webmethod中写入响应:)如何调用webmethod?使用jQuery?@Murali有什么好的例子吗?@Murali是的,我称之为使用jQuery如果你只需要更改链接的CSS,为什么不使用jQuery本身来更改它,而不是让webmethod通过服务器来完成呢?@BeemerGuy你有什么好的例子吗?我从来没有试过……给你。Murali抢先回答了这个问题。如果我必须使用4个linkbutton id,那么我应该如何在这个@MiteshJain中编写,将CssClass属性添加到所有4个链接按钮中,比如
CssClass=“menu”
,并在jQuery中获得所有4个链接按钮,比如
$('a.menu')。添加类(result.CssClass)
,而不是id。或者您可以添加四行diff id并执行此操作。希望您能理解:)响应在.cs页面响应中显示错误。ContentType=“application/json”@MiteshJain,更新了webmethod和ajax调用。请查收。现在很简单:)
 $.ajax({
   type: "POST",
   url: "index.aspx/lvimgclick",
   contentType: "application/json; charset=utf-8",
   data: JSON.stringify({ value: "test" }),
   dataType: "json", 
   success:function(result){

     if(result.cssclass)
     {
       $('#<%= lvlink1.ClientID %>').addClass(result.cssclass);
     }
   }     
  });
   public class CustomResult
    {
        public string output{ get; set; }
        public string cssclass{ get; set; }
    }

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static CustomResult lvimgclick()
{      
    var result=new CustomResult{output="hi", cssclass="lv-under1"}

    return result;

}
<asp:LinkButton ID="lnk1" runat="server" CssClass="menu" Text="Home" />
<asp:LinkButton ID="lnk2" runat="server" CssClass="menu" Text="AboutUs" />
  success:function(result){

     if(result.cssclass)
     {
       $('a.menu').addClass(result.cssclass);
     }
   }