问题描述:
在GridView控件中,我添加了一个模板列,里面有一个Button控件,我想在这个控件的OnClientClick事件中调用已经写好的JavaScript函数WinOpen(url)弹出一个新窗口。 我写的代码是:OnClientClick='WinOpen("DelegateConfirm.aspx?id= <%# Eval("ID")%>");',winopen里的url我老是写的不对,希望高手指教!
<asp:Label ID="Label1" runat="server" Text='<%# Eval("用户名","[{0}]") %>' ForeColor='<%# this.NameColor((string)Eval("分类")) %>' />
这里绑定了“用户名、分类”两个字段。 protected System.Drawing.Color NameColor(string name) { if (name == "特别关注") return System.Drawing.Color.Red; else return System.Drawing.Color.DarkBlue; }
解释一下上面,故意对“用户名”在显示时重新格式化,增加了中括号。然后又自动绑定ForColor属性,注意此时要返回强类型而不是string。 绑定Visible属性也是一样,创建一个bool型数据转换方法供界面设计时调用即可。 数据绑定是一种界面设计的“大法”。 这样的编码又简洁、又快速,因为用不着嵌入手动写的执行DataBind代码的那些事件方法中,就免去手写过多代码,你可以腾出精力做出很酷的界面。使用过多的asp.net1,1风格的代码去FindControl然后去改变其属性是比较累赘的,相对来说维护困难,你就没有精力和信心去增加很多很酷的界面自动化调整了。