熬夜遇到了怪问题:模板列中的Hyperlink,无法用鼠标获得焦点,但可以用键盘获得?!
由于要做鼠标点击某一行,背景色变色的效果(双击弹出窗口打开响应窗口),需要让DataGrid中的模板列(也暂时只有这一列)通过鼠标获得焦点,然后在数据绑定的时候添加属性。
但通过反复测试,发现只有用键盘的方式才能使该模板列Hyperlink获得焦点,鼠标Mouseover和双击事件均正常,但鼠标单击上去跟没点一样?焦点为何无法获得?
代码如下:
protected void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
e.Item.TabIndex=1;
if (e.Item.ItemType != ListItemType.Header)
{
e.Item.TabIndex=1;
e.Item.Attributes.Add( "style", "cursor:hand;font-family:arial;font-size:12pt");
e.Item.Attributes.Add( "onmouseout","this.style.backgroundColor=\""+e.Item.Style["BACKGROUND-COLOR"]+"\"");
e.Item.Attributes.Add( "onmouseover","this.style.backgroundColor=\""+"khaki"+"\"");
e.Item.Attributes.Add( "onblur","this.style.backgroundColor=\""+e.Item.Style["BACKGROUND-COLOR"]+"\"");
e.Item.Attributes.Add( "onfocus","this.style.backgroundColor=\""+"red"+"\"");
}
}
而前端页面的代码如下:
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:ImageButton id="pic" Enabled="False" runat="server" CommandName="WorkFlow" ImageUrl="images/user1.gif"></asp:ImageButton>
<asp:HyperLink runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "enddate")%>' Target="_blank" NavigateUrl="#" TabIndex="1" Visible="true" Enabled="true" EnableViewState="true" Font-Name="arial"/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
谢谢各位高手指点!
问题点数:80、回复次数:5Top
1 楼tinyhuhu(~~~御风而行~~~)回复于 2006-03-04 13:47:08 得分 0
顶一下!Top
2 楼flyinging(一路走来)回复于 2006-03-04 14:05:11 得分 0
写 这一行的事件Top
3 楼tinyhuhu(~~~御风而行~~~)回复于 2006-03-04 18:53:20 得分 0
谢谢Flyinging,你的意思是给自动生成的Hyperlink动态添加Click事件,在事件里改变属性?Top
4 楼tinyhuhu(~~~御风而行~~~)回复于 2006-03-04 22:59:28 得分 0
还顶!Top
5 楼zhuzhu_syj(猪猪)回复于 2006-03-04 23:20:39 得分 0
用e.Item.Cells[]取他的列呢?Top




