我目前正在构建一个ASP.NET GridView,其中来自特定列的值必须通过单击直接编辑。
我设法这样做了:
<asp:TemplateField HeaderText="<%$Resources:i18n, Projets_Tableau_Désengagement %>" ItemStyle-Width="1%" ItemStyle-HorizontalAlign="Center" SortExpression="Comments">
<ItemTemplate>
<asp:TextBox ID="Disengagement" runat="server" Text='<% #Bind("Disengagement") %>'
BackColor="Transparent" BorderStyle="None" OnTextChanged="OnDisengagementChanged" AutoPostBack="true" />
</ItemTemplate>
</asp:TemplateField>
一切正常,它完全符合我的要求,一个没有边框的文本框,看起来像一个标签,可以编辑。
但我的问题是,当我点击它时,我想要有边框。我尝试了许多实现javascript或CSS的解决方案,但它们似乎都没有用(可能是因为我缺乏Web编程技能)。
由于服务器端处理了“TextChanged”事件,因此我会在用户更改文本框中的文本后删除边框,一切都应该开箱即用。
但有没有办法在代码隐藏中添加边框“OnClick”?
谢谢。
答案 0 :(得分:0)
是的,你可以随时随地做到这一点。
每个事件接收的参数是:
(object sender, EventArgs e)
sender
是引发事件的组件的引用。你只需要这样做:
(sender as TextBox).BorderStyle = System.Windows.Forms.BorderStyle.None; //or what ever you want
答案 1 :(得分:0)
您可以在我看来使用row命令,如下所示:
<asp:GridView OnRowCommand="gvOnRowCommand" .../>
并控制你的
<asp:TextBox CommandName="AnyName" ... />
在代码背后
protected void gvOnRowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "AnyName")
{
//your code to add border
}
}
}