.net div触发回发

时间:2011-02-08 17:16:22

标签: .net

我想制作一个自定义按钮,它会显示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应用于元素,并希望按钮最终看起来像这样。除非它表示鲍勃史蒂夫标记,你可以分别在两个三分之一

按钮布局

Button Layout

3 个答案:

答案 0 :(得分:2)

您可以使用LinkBut​​ton实现自定义布局(默认情况下LinkBut​​ton实现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)

您可以使用LinkBut​​ton控件并通过代码分配每个按钮的文本。同样,您也可以在渲染时为每个LinkBut​​ton控件分配CommandName和CommandArgument参数,以便在需要时对它们进行唯一处理。

如果您希望上面列出的整个文本是LinkBut​​ton的一部分,您应该能够放置所有文本并将其应用于LinkBut​​ton的Text属性。您只需要小心HTML格式的格式。

从那里你可以相应地处理按钮的点击事件。

答案 2 :(得分:0)

对于我认为你想要完成的事情,你可能会坚持使用javascript。但是,你可以在div容器的onClick事件中使用javascript来“连接”你的“按钮”的回发。 __doPostBack(document.getElementById('divID'), 'customArgument');

然后你可以检查你的div是否导致你的代码隐藏在这个代码隐藏中(C#):

if (Request.Form["__EVENTTARGET"] == "divID"){}

这是你要找的吗?