1

我的html代码是

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

.cs 代码

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

protected void lvimg1_Click(object sender, EventArgs e)
{ 
    lvlink1.CssClass = "lv-under1";//another class
    lvimg1.ImageUrl = "~/images/1.jpg";

    lvlink2.CssClass = "lv-under";
    lvimg2.ImageUrl = "~/images/spacer.gif";

    lvlink3.CssClass = "lv-under";
    lvimg3.ImageUrl = "~/images/spacer.gif";

    lvlblhd.CssClass = "detailheader";//label
    lvlblsubhd.CssClass = "detailsubheader";//label
    lvtd.BgColor = "#7e65a9";//td
    lvlblhd.Text = "<img src='images/spacer.gif' height='8px' width='5px' /><br/>Wake up";
    lvlblsubhd.Text = "&nbsp;&nbsp;&nbsp;to a fragrant day..";
    lvlbl.Text = "A beautifully fragrance residence";
}

我想要的是:

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

或者

[WebMethod]
public static void lvimgclick()
{      
    lvlink1.CssClass = "lv-under1";//another class
    lvimg1.ImageUrl = "~/images/1.jpg";

    lvlink2.CssClass = "lv-under";
    lvimg2.ImageUrl = "~/images/spacer.gif";

    lvlink3.CssClass = "lv-under";
    lvimg3.ImageUrl = "~/images/spacer.gif";  

    lvlblhd.CssClass = "detailheader";//label
    lvlblsubhd.CssClass = "detailsubheader";//label
    lvtd.BgColor = "#7e65a9";//td
    lvlblhd.Text = "<img src='images/spacer.gif' height='8px' width='5px' /><br/>Wake up";
    lvlblsubhd.Text = "&nbsp;&nbsp;&nbsp;to a fragrant day..";
    lvlbl.Text = "A beautifully fragrance residence";    
}

我该怎么办?我还必须使用lvimg1_Click(null, null); lvlink1.CssClass = "lv-under1"; 在许多不是网络方法的功能上

我是新手,所以如果您想了解更多信息,请告诉我

4

2 回答 2

1

它只能在瞬间请求时完成。您可以在静态方法中创建服务器控制对象并更改它们,但是如果您希望将更改应用于客户端,则需要为来自服务器响应的进程字符串添加客户端代码。
所以通常你可以跳过服务器端方法,一次在客户端上做所有事情

更新
如果您只需要更改 css 类和图像 url,则不需要 ajax 和 web 方法,您可以像这样在客户端一次完成所有操作

<script type="text/jscript">
    function imgclick() {
        $('#<%= lvlink1.ClientID %>').removeClass().addClass("lv-under1"); //another class
        $('#<%= lvimg1.ClientID %>').attr('src','<%= ResolveUrl("~/images/1.jpg") %>');

        $('#<%= lvlink2.ClientID %>,#<%= lvlink3.ClientID %>').addClass("lv-under");
        $('#<%= lvimg2.ClientID %>, #<%= lvimg3.ClientID %>').attr('src', '<%= ResolveUrl("~/images/spacer.gif") %>');
    };
</script>

<img src='images/img1.jpg' onclick='return imgclick();' />  // 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" />

如果使用这种情况 - 不需要网络方法

更新2

function imgclick() {
    ...
    $('#<%= lvlblhd.ClientID %>').removeClass().addClass("detailheader").html("<img src='images/spacer.gif' height='8px' width='5px' /><br/>Wake up")
    $('#<%= lvlblsubhd.ClientID %>').removeClass().addClass("detailsubheader").html("&nbsp;&nbsp;&nbsp;to a fragrant day..");
    $('#<%= lvtd.ClientID %>').css('background-color',"#7e65a9");//td
    $('#<%= lvlbl.ClientID %>').text("A beautifully fragrance residence");
    ...
}
于 2013-11-11T07:09:35.533 回答
0

据我所知,您无法使用 WebMethods 操作服务器控件,如果您不想对页面进行完整回发,则可以使用更新面板。

以下是 MSDN 中更新面板的概述:http: //msdn.microsoft.com/en-us/library/bb399001.aspx

于 2013-11-11T08:45:39.927 回答