我想制作一个自定义按钮,它会显示3个数据绑定标签和其他一些文本。我希望这个按钮完全像asp:按钮控件。目前我唯一的想法是用div包围标签,触发divs click事件以使用导致回发的javascript事件。我不想要这个,我想创建一个自定义按钮,像普通的asp:按钮控件一样连接回发。关于如何做到这一点的任何想法都会非常感谢你。
<div class="someClass">
<div>
<asp:Label ID="lblONE" runat="server" Text='ONE'></asp:Label>
</div>
<div>
<asp:Label ID="lblTWO" runat="server" Text='TWO'></asp:Label>
</div>
<div>
<asp:Label ID="lblTHREE" runat='server' Text='THREE'></asp:Label>
</div>
</div>
我已经将css应用于元素,并希望按钮最终看起来像这样。除非它表示鲍勃史蒂夫标记,你可以分别在两个三分之一
按钮布局
答案 0 :(得分:2)
您可以使用LinkButton实现自定义布局(默认情况下LinkButton实现IButtonControll)
<style type="text/css">
.button {
border: solid thin black; text-decoration: none; display: block; height: 40px;
}
.one {
color: green; text-transform: uppercase;
}
.two {
color: red; text-transform: lowercase;
}
.three {
color: blue; text-transform: capitalize;
}
</style>
<asp:LinkButton runat="server" ID="LinkButton1" CssClass="button">
<div class="one">ONE</div>
<div class="two">TWO</div>
<div class="three">THREE</div>
</asp:LinkButton>
// as you need DataBinding, so
<asp:LinkButton runat="server" ID="LinkButton1" CssClass="button">
<div class="one"><%#Eval("ONE")%></div>
<div class="two"><%#Eval("TWO")%></div>
<div class="three"><%#Eval("THREE")%></div>
</asp:LinkButton>
答案 1 :(得分:1)
您可以使用LinkButton控件并通过代码分配每个按钮的文本。同样,您也可以在渲染时为每个LinkButton控件分配CommandName和CommandArgument参数,以便在需要时对它们进行唯一处理。
如果您希望上面列出的整个文本是LinkButton的一部分,您应该能够放置所有文本并将其应用于LinkButton的Text属性。您只需要小心HTML格式的格式。
从那里你可以相应地处理按钮的点击事件。
答案 2 :(得分:0)
对于我认为你想要完成的事情,你可能会坚持使用javascript。但是,你可以在div容器的onClick事件中使用javascript来“连接”你的“按钮”的回发。 __doPostBack(document.getElementById('divID'), 'customArgument');
然后你可以检查你的div是否导致你的代码隐藏在这个代码隐藏中(C#):
if (Request.Form["__EVENTTARGET"] == "divID"){}
这是你要找的吗?