我有一个带文本框的GridView,每行一个。 我需要更改属性" onkeypress"验证密钥。
<asp:Table runat="server">
<asp:TableRow runat="server">
<asp:TableCell runat="server">
<asp:GridView ID="gridview_1" DataSourceID="SqlDataSource3" AutoGenerateColumns="false" runat="server">
<Columns>
<asp:TemplateField HeaderText="textbox">
<ItemTemplate>
<asp:TextBox ID="textbox_1" CssClass="textbox_1" runat="server" Text='<%# Eval("sql_textbox")%>'>
</asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</asp:TableCell>
</asp:TableRow>
在后面的代码中:
foreach (GridViewRow row in gridview_1.Rows)
{
TextBox txtbox = ((TextBox)gridview_1.Rows[row.RowIndex].FindControl("textbox_1"));
txtbox.Attributes.Add("onkeypress","javascript:return validateFloatKeyPress(this, event);");
}
但是当生成文本框时,JavaScript不起作用。为什么呢?
我无法在ASP部分执行此操作,因为我希望文本框具有不同的JavaScript方法&#34; if&#34;代码背后的条款。
非常感谢。
答案 0 :(得分:0)
我输入了asp:GridView属性onrowdatabound =&#34; GridView1_RowDataBound&#34;似乎工作正常。在代码背后,我把...
<asp:GridView ID="gridview_1" DataSourceID="SqlDataSource3" AutoGenerateColumns="false" onrowdatabound="GridView1_RowDataBound" runat="server">
在代码背后:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.DataItem != null)
{
TextBox textBox1 = e.Row.FindControl("textbox_1") as TextBox;
textBox1.Attributes.Add("onkeypress","javascript:return validateFloatKeyPress(this, event);");
}
}
它运作正常,我认为:)