asp.net后台如何获取当前点击的动态生成的input按钮的value?

listview的<itemTemplate>中动态生成的按钮,如果用asp:Button按钮,则可以在点击事件中用
Button bttn = sender as Button;
string v=bttn.value.toString();这样取动态生成的asp:Button的值;
可是如果要用input按钮,再由listview动态生成,所有input的id都是动态生成,点击之后,后台代码应该怎么判断哪个input按钮产生点击事件,并获取该点击事件input按钮的value值?
<asp:ListView ID="StoryTitles" runat="server">
<ItemTemplate>
<div class="tags" id='tag<%# Eval("SID")%>'>
<input id="storyBooks" type="button" class="buttons" runat="server" onserverclick="showIt" value='<%# Eval("Titles")%>' />
<asp:Button CssClass="buttons" ID="Button1" OnClientClick="lightUp();" onclick="showIt" runat="server" Text='<%# Eval("Titles")%>' />
</div>
</ItemTemplate>
</asp:ListView>

你动态生成的<input>有runat=“server”不?如果有,那么可以和<asp:Button runat="server">同样的方法判断

System.Web.UI.HtmlControls.HtmlInputButton button= sender as System.Web.UI.HtmlControls.HtmlInputButton;
string v=button.Value.ToString();

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-27
这个JS就需要改动一下了,lightUp();

改成 lightUp(this);

然后在JS方法里 使用 lightUp(obj),操作对obj操作即可。追问

之前试过。。。但就是是后台要怎么取obj.value?

function lightUp(obj) {
....
obj.value;
}

第2个回答  2013-08-26
写一段获取按钮text的代码,希望对你有启发
foreach(ListViewItem lvi in StoryTitles.Items) //遍历所有项
{
Control con = lvi.FindControl("Button1");
string s = ((Button)con).Text ;

}追问

这里的”button“是动态生成的,即使clientIDMode 设置为static,也有很多个button1,代码做不了判断,但还是谢谢,遍历是条思路,谢谢~

相似回答