在我的asp.net页面中,我有三个标签:
2和3都由内容填充,内容由后面的C#代码加载。 页面加载时,会自动按第一个标签的默认文本进行过滤。我想点击其他标签来调用在页面加载时触发的方法,但是使用点击的名称进行过滤。
我的问题是我尝试用点击的任何名称替换第一个标签,然后再次加载由第一个标签过滤的内容,但似乎将标签重置为它默认文本显然以与以往相同的方式过滤它。
也许AJAX是最简单的方法,但我还没有尝试过,所以做这个的基本例子会很棒。
如果您有更多问题,请询问。
答案 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更新面板中,并在后面的代码中执行。