0

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

  1. 要过滤的默认名称
  2. 填写了我想点击成为新过滤器的名称列表
  3. 填充了要过滤的项目列表

2 和 3 都由其后面的 C# 代码加载的内容填充。当页面加载时,它会被第一个标签的默认文本自动过滤。我想单击其他标签来调用在页面加载时触发但使用单击的名称进行过滤的方法。

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

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

如果您有更多问题,请提出。

4

3 回答 3

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 阿贾克斯调用

    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
     }
     }

希望对你有帮助

于 2013-07-25T16:39:40.600 回答
1

您可以使用页面方法。您已在此处使用 [WebMethod] 属性教程签署您的方法

于 2013-07-25T17:30:17.283 回答
0

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

于 2013-07-25T16:38:32.833 回答