嗨,我发现代码与以下在线类似。将按钮埋在中继器控件中以触发整个周期返回服务器似乎真的很棒。
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<%=DateTime.Now.ToString() %>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="HiddenButton" />
</Triggers>
</asp:UpdatePanel>
<!--Make a hidden button to treat as the postback trigger-->
<asp:Button ID="HiddenButton" runat="server" Style="display: none" Text="HiddenButton" />
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<!--when cick the button1, it will fire the hiddenButton-->
<asp:Button ID="Button1" Text="Trigger" CommandArgument='<%# Eval("Id") %>' OnClientClick="$get('HiddenButton').click();return false;"
runat="server" />
</ItemTemplate>
</asp:Repeater>
它通过将原始按钮的click事件挂接到该按钮上,使用hiddenButton来实现这一点。但是,我为此添加的是按钮的CommandArgument设置。我还需要为HiddenButton设置它。
有谁知道解决这个问题的方法吗?
最佳答案
首先,我将使用您发布的相同示例来解释使用 Disadvantage
的 Update Panel
。
以下是原始代码
输出
要显示 22 个字符的字符串,您可以检查正在接收和发送到服务器的数据量。想象一下
Database
将每个请求发送到 Update Panel
并且您的 GridView
在 Update Panel
中!!!!!! ViewState
数据,并使用GridView Inside the Update Panel
。 根据我的理解,上述两种技术都是最糟糕的。
现在我将向您描述
Page Methods
更新面板上的页面方法
Page Methods
允许ASP.NET AJAX
页面使用Page’s Static Methods
直接执行JSON (JavaScript Object Notation)
。我们可以先使用receiving HTML markup
仅请求我们感兴趣的信息,而不是先发布然后UpdatePanel’s contents
完全替换我们的Web Method
。样例代码
输出
希望这清楚地解释了用法的差异。
对原始查询的回答
您必须注册以下
ItemDataBound
的 Repeater
事件并使用以下代码。背后的代码
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
Button btn = (Button)e.Item.FindControl("Button1");
btn.OnClientClick = string.Format("SubmitButton('{0}');return false;"
, HiddenButton.ClientID);
}
}
JavaScript
<script type="text/javascript">
function SubmitButton(btn)
{
$("#" + btn).click();
}
</script>
//选择
<script type="text/javascript">
function SubmitButton(btn)
{
document.getElementById(btn).click();
}
</script>
Reference & Here
关于asp.net - 从中继器控件更新面板和触发器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5709932/