这个绑定表达式怎么写?我这样写总是原样输出,不解析呢
也换了其他几种写法,也是不解析
我先解释下 我的目的是想在点击GridView的更新按钮时调用JS判断输入的值是否合法.
给CheckValue(string1,string2)传递两个参数值(当前行中两个单元格的值),本来想传入个行号,在JS中取值的,但是也是写不对语法.所以就写了两个方法在后台取值,这样写也是不能解析,直接当字符串输出了.
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="True" CommandName="Update"
Text="更新" onclientclick='<%#"return CheckValue("+getAmount(Container.ItemIndex))+getDate(Container.ItemIndex)%>+")"'></asp:LinkButton>
也换了其他几种写法,也是不解析
我先解释下 我的目的是想在点击GridView的更新按钮时调用JS判断输入的值是否合法.
给CheckValue(string1,string2)传递两个参数值(当前行中两个单元格的值),本来想传入个行号,在JS中取值的,但是也是写不对语法.所以就写了两个方法在后台取值,这样写也是不能解析,直接当字符串输出了.
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="True" CommandName="Update"
Text="更新" onclientclick='<%#"return CheckValue("+getAmount(Container.ItemIndex))+getDate(Container.ItemIndex)%>+")"'></asp:LinkButton>
解决方案 »
- 关于MVC1,***.Master页面里aspx页面的顶部
- 再问一下
- System.Timers.Timer事件应用问题
- 求助GridView控件和TreeView控件两个问题(解决了包括这个贴还有另外几个贴的一共120分一并相送)
- VB 怎么修改成如下 C# 的数据库连接方式: (注:一定还要用VB,不能用C#)
- C# 动态生成.pdf文件
- yyne大侠进来接分啊,请问你一般什么时候上MSN啊?
- asp.net webmatrix哪有中文版下载呢?
- 一个DATAGRID分页问题,请解答。
- 急!!请教一个关于APS.NET的调试问题(大送分)
- 关于htnl页面传值并显示参数,求帮助!
- 页面出错
,这是代码
<a onclick="<%#"CheckValue("+getAmount(Container.ItemIndex))+getDate(Container.ItemIndex)%>+")";" id="GridView1_ctl02_LinkButton2" href="javascript:__doPostBack('GridView1$ctl02$LinkButton2','')">更新</a>
onclientclick=<%# "return CheckValue('" + getAmount(Container.ItemIndex) + "','" + getDate(Container.ItemIndex)+ "')" %>>另外
你必须是放在数据控件中才可以,如Repeater中
<%@ Page Language="C#" EnableViewState="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server"> void bind()
{
System.Data.DataTable dataTable1 = new System.Data.DataTable("BlogUser");
System.Data.DataRow dr; dataTable1.Columns.Add(new System.Data.DataColumn("Count1", typeof(System.Int32)));
dataTable1.Columns.Add(new System.Data.DataColumn("Count2", typeof(System.String)));
Random r = new Random();
for (int i = 0; i < 8; i++)
{
dr = dataTable1.NewRow();
dr[0] = r.Next(0, 100);
dr[1] = "AAAAAAAAAAAAAAAAAAAAA";
dataTable1.Rows.Add(dr);
} this.GridView1.DataSource = dataTable1;
this.GridView1.DataBind();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
bind();
}
} public String getAmount(int x)
{
return "测试内容" + x.ToString();
}
public String getDate(int x)
{
return "2011-11-" + x.ToString();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<script type="text/javascript">
function CheckValue(a,b) {
alert(a + "\r\n" + b);
return false;
}
</script>
</head>
<body> <form id="form1" runat="server">
<asp:Repeater ID="GridView1" runat="server"> <ItemTemplate> <asp:LinkButton ID="LinkButton2" runat="server" Text="更新"
onclientclick=<%# "return CheckValue('" + getAmount(Container.ItemIndex) + "','" + getDate(Container.ItemIndex)+ "')" %>>
</asp:LinkButton>
</ItemTemplate> </asp:Repeater>
</form>
</body>
</html>
lblID .Text这就是 你获取的数据内容
LinkButton LinkButton2 = e.Item.FindControl("LinkButton2") as LinkButton;
LinkButton2.Attributes.Add("onclientclick ", "return CheckValue('数据1','数据2');");这样 就完事了数据1 数据2 你自己在绑定事件中获取 获取例子 上面有
例如下面 lblprojectname 是你要的 数据1你就在 ItemDataBound 绑定事件这么写 就OKLabel lblprojectname= e.Item.FindControl("lblprojectname") as Label; lblprojectname.text
就是当前绑定数据<asp:GridView ID="GridViewProject" runat="server" AutoGenerateColumns="False" />
<Columns>
<asp:TemplateField SortExpression="projectname"><ItemTemplate><asp:Label ID="lblprojectname" runat="server" Text='<%# Bind("projectname") %>' ></asp:Label>
</ItemTemplate>
</asp:TemplateField></Columns> </asp:GridView>
Container.DataItemIndex
LinkButton2.Attributes.Add("onclientclick ", "return CheckValue("+getAmount(Container.ItemIndex))+getDate(Container.ItemIndex)");
int I=e.Row.RowIndex;
//获取对象
LinkButton LinkButton2 = e.Item.FindControl("LinkButton2") as LinkButton;
//添加 onclientclick 事件
LinkButton2.Attributes.Add("onclientclick ", "return CheckValue('根据行索引获取单元格数据1,根据行索引获取单元格数据2')");测试过 完全可以 给分吧
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//获取行索引
int I=e.Row.RowIndex;
//获取对象
LinkButton LinkButton2 = e.Item.FindControl("LinkButton2") as LinkButton;
//添加 onclientclick 事件
LinkButton2.Attributes.Add("onclientclick ", "return CheckValue('根据行索引获取单元格数据1,根据行索引获取单元格数据2')");}
}
GridView 的行绑定事件 我刚写的是 ItemDataBound 写错了 好久没用了 就是这个代码了
呵呵,谢谢Netzhouxiang兄的热情帮助!很难得见到你这么热心的朋友!
你的思路是可行的,不过有点点小的问题:
GridView中只有RowDataBound事件,另外我用的是模板列,编辑状态下的控件似乎在RowDataBound事件触发时还没有生成,在RowEditing事件处理方法中才可以访问到.
您的思路是正确的!