我在网页上使用了ajax更新面板.我想在更新面板上设置触发器.我在asp.net转发器控件中放置了asp.net链接按钮控件.当我点击来自转发器控件的链接按钮时,更新面板上的内容应该更新.我使用链接按钮的onclick事件.那么如何在这种情况下设置触发器?
谢谢
HTML:
<asp:LinkButton ID="lnk_productImage" runat="server" Text="select"
OnClick="viewProductImage('<%#DataBinder.Eval(Container.DataItem,"Id") %>')"
>
</asp:LinkButton>
Run Code Online (Sandbox Code Playgroud)
代码隐藏:
protected void viewProductImage(object sender, EventArgs e, int id)
{
//Load Product Image
}
Run Code Online (Sandbox Code Playgroud) 我将一个LinkButton控件动态添加到PlaceHolder中.如果我在每个OnInit()上添加一个新的LinkButton实例,那么此LinkButton的OnClick处理程序可以正常工作.
但是,如果我在会话中存储LinkButton的实例,然后将其添加到PlaceHolder的控件集合中,则LinkButton.OnClick将无法触发.
有没有办法在给定的场景中重用我在会话中存储的控件?每次重新创建它们都不是一种选择.
正如旁注 - 它是1.1中的继承应用程序,我刚刚迁移到3.5."破碎"的方法似乎在1.1中起作用.
感谢所有的答案.
public static void Clicked(object sender, EventArgs e) {
Debugger.Break();
}
protected override void OnPreInit(EventArgs e) {
base.OnPreInit(e);
InitLinkButton();
}
private void InitLinkButton() {
var lb = new LinkButton();
plOne.Controls.Add(lb);
lb.ID = "lb";
lb.Text = "I will work.";
lb.Click += Clicked;
plOne.Controls.Add(lb);
LinkButton lb2 = null;
if (Session["lb2"] == null) {
lb2 = new LinkButton();
lb2.ID = "lb2";
lb2.Text = "I won't work.";
lb2.Click += Clicked;
Session["lb2"] = lb2;
} else {
lb2 = …Run Code Online (Sandbox Code Playgroud) 我正在研究ASP.NET/C#应用程序.
我有像这样的链接按钮
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="Link_Click">Link1</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" OnClick="Link_Click">Link2<Chart</asp:LinkButton>
<asp:LinkButton ID="LinkButton3" runat="server" OnClick="Link_Click">Link3</asp:LinkButton>
Run Code Online (Sandbox Code Playgroud)
有没有办法知道在Link_Click事件中点击了哪一个?
我不想为每个链接创建不同的事件.
我正在寻找这样的东西:
protected void Link_Click(object sender, EventArgs e)
{
string LinkClicked = Get_Which_Link_Has_Been_Clicked();
if(LinkClicked == "Link1")
{
//DoSomething;
}
else if(LinkClicked == "Link2")
{
//Do something else;
}
//and so on;
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我目前在ListView的ItemTemplate中有一个LinkButton.ListView中的每个按钮都应该调用相同的单击事件处理程序.但是,在处理程序中,我需要知道单击了哪个按钮.这可能吗?
<asp:ListView runat="server" ID="lvKeyGroup">
<LayoutTemplate>
<table>
<asp:Placeholder runat="server" ID="itemPlaceholder" />
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td>[<asp:LinkButton runat="server" Text="Remove" OnClick="lbRemoveAuthGroup_Click" />]</td>
<td><%# Eval("AuthorizationGroup") %></td>
</tr>
</ItemTemplate>
</asp:ListView>
Run Code Online (Sandbox Code Playgroud) 我有一个ASP.NET应用程序,我使用ListView.如果我创建一个ListItem(一行),我想使用一个LinkButton.我希望这个LinkButton有CSS属性..
color:Black;
text-decoration:none;
Run Code Online (Sandbox Code Playgroud)
但是,如果我启动应用程序.我得到linkButtons为蓝色和下划线:(
在这里我的代码:
ASPX:
...
<asp:ListView runat="server" ID="myListView">
<LayoutTemplate>
<table id="UserTable" runat="server" border="0">
<tr id="Tr1" style="background-color:#E5E5FE">
<th runat="server"><asp:LinkButton ID="lnkBenutzer" runat="server" >id_Benutzer</asp:LinkButton></th>
<th runat="server"><asp:LinkButton ID="lnkemail" runat="server" >id_Email</asp:LinkButton></th>
<th runat="server"><asp:LinkButton ID="lnkVorname" runat="server" >id_Vorname</asp:LinkButton></th>
<th runat="server"><asp:LinkButton ID="lnkNachname" runat="server" >id_Nachname</asp:LinkButton></th>
<th runat="server"><asp:LinkButton ID="lnkTelefon" runat="server" >id_Telefon</asp:LinkButton></th>
</tr>
<tr runat="server" id="ItemPlaceholder">
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td align="left" ><asp:LinkButton ID="Label1" Text='<%# Eval("Benutzername") %>' runat="server" /></td>
<td align="left"><asp:Label ID="Label2" Text='<%# Eval("eMail") %>' runat="server" /></td>
<td align="left"><asp:Label ID="Label3" Text='<%# Eval("Vorname") %>' runat="server" /></td>
<td align="left"><asp:Label ID="Label4" …Run Code Online (Sandbox Code Playgroud) 我有一个带有客户列表的中继器。每个客户都有一个删除链接按钮。作为链接按钮的一部分,我想将 Customer 对象传递给 Command Arguement,如下所示(其中 Container.DataItem 是客户对象):
<asp:LinkButton ID="lnkDelete"
OnClientClick="return confirmDelete();"
OnClick="Customer_OnDelete"
CommandArgument="<%# Container.DataItem %>"
CommandName="Delete"
runat="server"></asp:LinkButton>
Run Code Online (Sandbox Code Playgroud)
当我这样做时:
var button = (((LinkButton) sender));
var customer= button.CommandArgument;
Run Code Online (Sandbox Code Playgroud)
button.CommandArgument 是一个字符串。我需要所有的对象属性,因为我们使用 Nhibernate,所以需要设置所有内容,删除记录的 ID 是不够的。我在网上看到过关于将逗号分隔的值列表传递到命令论证中的示例,但希望避免这样做。这可能吗?
有任何想法吗?谢谢
我想在asp:listview控件中添加一个按钮或链接按钮,并且还想在我在asp.net中的listview控件中添加的rhat按钮的click事件上编码,请让我知道如何在asp.net 4.0 im中执行此操作使用c#4.0中的程序.我希望有些伙伴有一个简单的解决方案来完成这项任务.
谢谢
我正在使用使用 C# 的 ASP .NET 4.0。我有一个 Web 表单,其中所有布局都存在于 UpdatePanel 中。在里面我有以下内容:
用于使用文本框和搜索按钮输入搜索条件的面板
使用动画 .gif 更新进度
带有根据我的第一个存储过程(使用搜索条件)填充的中继器的面板 - 每行内部都有一个 LinkButton,单击该按钮时会调用我的第二个存储过程并在中继器行中填充面板。我正在中继器的 ItemCommand 事件的代码隐藏中填充面板。我将 LinkButton 上的 CommandArgument 用于第二个存储过程。我有一个 CollapsiblePanelExtender 来对包含第二个存储过程中的数据的面板进行动画处理。
我可以正常工作,但不是我想要的方式。单击搜索按钮时,UpdateProgress 会显示我的动画 .gif。但是,当在 Repeater 数据行中单击 LinkButton 时,我的第二个存储过程需要大约 6 秒的时间来处理。我想要一个 UpdateProgress 在发生这种情况时显示动画 .gif。我尝试通过实施第二个 UpdatePanel 来解决此问题,但我根本无法触发 UpdateProgress。任何帮助将不胜感激。提前致谢。
我动态创建了两个链接按钮:
for (int i = 0; i < 2; i++) {
LinkButton lb = new LinkButton();
lb.ID = "lnk" + FileName;
lb.Text = FileName;
Session["file"] = FileName;
lb.CommandArgument = FileName;
lb.Click += new EventHandler(Lb_Click);
Panel1.Controls.Add(lb);
Panel1.Controls.Add(new LiteralControl("<br />"));
}
Run Code Online (Sandbox Code Playgroud)
我有两个链接,即:
我需要确定点击了哪一个:
void Lb_Click(object sender, EventArgs e) {
string id=lb.ID;
//Here - how to get link button id which is clicked (either File11 id or File22 id)?
}
Run Code Online (Sandbox Code Playgroud) linkbutton ×10
asp.net ×7
c# ×5
listview ×3
repeater ×3
onclick ×2
updatepanel ×2
button ×1
c#-4.0 ×1
css ×1
dynamic ×1
html ×1
itemtemplate ×1
panel ×1
parameters ×1
triggers ×1