从asp.net页面触发C#类的最简单方法是什么?

时间:2013-07-25 16:29:40

标签: c# javascript jquery asp.net ajax

在我的asp.net页面中,我有三个标签:

  1. 要按
  2. 过滤的默认名称
  3. 填写了我想点击的名单列表作为新过滤器
  4. 填写了要过滤的项目列表
  5. 2和3都由内容填充,内容由后面的C#代码加载。 页面加载时,会自动按第一个标签的默认文本进行过滤。我想点击其他标签来调用在页面加载时触发的方法,但是使用点击的名称进行过滤。

    我的问题是我尝试用点击的任何名称替换第一个标签,然后再次加载由第一个标签过滤的内容,但似乎将标签重置为它默认文本显然以与以往相同的方式过滤它。

    也许AJAX是最简单的方法,但我还没有尝试过,所以做这个的基本例子会很棒。

    如果您有更多问题,请询问。

3 个答案:

答案 0 :(得分:1)

嘿你可以使用两种方法Ajax Call__dopostback

1 __doPostback

<input type="button" id="btnSave" onclick="javascript:SaveWithParameter('Hello User')"  value="click me"/>

  <script type="text/javascript">
 function SaveWithParameter(parameter)
  {
 __doPostBack('btnSave', parameter)
  }
 </script>

C#代码

public void Page_Load(object sender, EventArgs e)
{
  string parameter = Request["__EVENTARGUMENT"]; // parameter
// Request["__EVENTTARGET"]; // btnSave and do your work
 }

2 Ajax Call

    function callAjaxGetJoiningDate(hashVal) {
        var address = "Default.aspx";
        $.ajax({
            type: 'POST',
            url: address,
            data: { empCode: hashVal },
            beforeSend: function() {
                $('#ajax-panel').html('<div class="loading"><img src="images/loading.gif" alt="Loading..." /></div>');
            },
            success: function(data) {
                // successful request; do something with the data
                $('#ajax-panel').empty();
                var actualData = data.trim().split('~');
                $("#YourResultControl").val(actualData[1]);
            },
            error: function() {
                // failed request; give feedback to user
                $('#ajax-panel').html('<p class="error"><strong>Oops!</strong> Try that again in a few moments.</p>');
            }
        });
    }

C#代码是

 protected void Page_Load(object sender, EventArgs e)
    {
      if (Request.Form["empCode"] != null)
        {
          //Do Work
     }
     }

希望它可以帮助你

答案 1 :(得分:1)

您可以使用页面方法。您已使用[WebMethod]属性为方法签名 tutorial here

答案 2 :(得分:0)

将所有标签放在AJAX更新面板中,并在后面的代码中执行。