动态增删改的gridview,注脚是插入,然后又修改、更新、取消、删除在操作列中
gridview列中有一个img,点击出发弹窗事件,点击修改的时候 如下面的后台代码,onclick可以触发
但是gridview的注脚中的img点击以后无法触发事件。请教怎么给gridview注脚中控件添加onclick事件啊
前台<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id"
OnRowDataBound="GridView1_RowDataBound" ShowFooter="true" Width="100%"
ondatabound="GridView1_DataBound" >
<HeaderStyle BackColor="#507CD1" Font-Bold="true" />
<Columns>
<asp:TemplateField HeaderText="负责人员">
<ItemTemplate>
<asp:PlaceHolder ID="LabelRealname" runat="server">
<%#Eval("Realname")%></asp:PlaceHolder>
<asp:TextBox ID="username" runat="server" Style="display: none" Visible="false"></asp:TextBox>
<asp:TextBox ID="Realname" runat="server" Width="70%" Visible="false"></asp:TextBox><a href="javascript:void(0)"><img id="img1" runat="server" alt="" src="../images/FDJ.gif" border="0" Visible="false"/></a>
</ItemTemplate>
<ItemStyle Width="200" BorderColor="#507CD1" BorderWidth="1px" Height="23px"/>
<FooterTemplate>
<asp:TextBox ID="Newusername" runat="server" Style="display: none"></asp:TextBox>
<asp:TextBox ID="NewRealname" runat="server" Width="70%"></asp:TextBox><a href="javascript:void(0)" ><img id="Newimg1" runat="server" alt="" src="../images/FDJ.gif" border="0" /></a>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="任务备注">
<ItemTemplate>
<asp:PlaceHolder ID="Labelbeizhu" runat="server">
<%#Eval("beizhu")%></asp:PlaceHolder>
<asp:TextBox ID="beizhu" Width="100%" runat="server" Visible="false"></asp:TextBox>
</ItemTemplate>
<ItemStyle Width="400" BorderColor="#507CD1" BorderWidth="1px" Height="23px"/>
<FooterTemplate>
<asp:TextBox ID="Newbeizhu" runat="server" Width="98%"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<asp:Panel ID="PanelNormal" runat="server">
<asp:Button ID="EditButton" runat="server" Text="修改" OnClick="EditClick1" CommandArgument='<%#Eval("id") %>' />
<asp:Button ID="DeleteButton" runat="server" Text="删除" OnClick="DeleteClick1" CommandArgument='<%#Eval("id") %>' />
</asp:Panel>
<asp:Panel ID="PanelUpdate" runat="server" Visible="false">
<asp:Button ID="UpdateButton" runat="server" Text="更新" OnClick="UpdateClick1" CommandArgument='<%#Eval("id") %>' />
<asp:Button ID="CancelButton" runat="server" Text="取消" OnClick="CancelClick1" />
</asp:Panel>
</ItemTemplate>
<FooterTemplate>
<asp:Button ID="AddButton" runat="server" Text="添加新纪录" OnClick="AddClick1" />
</FooterTemplate>
</asp:TemplateField>
</Columns>
<RowStyle BackColor="#BBFFFF" ForeColor="Black" />
<SelectedRowStyle BackColor="#BBFFFF" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#BBFFFF" ForeColor="Black" HorizontalAlign="Right" />
<HeaderStyle BackColor="#BBFFFF" Font-Bold="True" ForeColor="#000000" Wrap="False" />
<AlternatingRowStyle BackColor="#BBFFFF" />
<EmptyDataTemplate>
<table cellspacing="0" rules="all" border="1" style="border-collapse: collapse;">
<tr>
<th>材料名称</th>
<th>负责人员</th>
<th>时间要求</th>
<th>任务备注</th>
<th>操作</th>
</tr>
<tr>
<td>
<asp:DropDownList runat="server" ID="NewmettingSX" DataSourceID="SqlDataSource2" DataTextField="mettingSX" DataValueField="mettingSX" Width="200">
<asp:ListItem Value="——请选择——">——请选择——</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:qpoaConnectionString7 %>"
SelectCommand="SELECT [mettingSX] FROM [mettingAP] where [class]='材料准备'"></asp:SqlDataSource>
</td>
<td>
<asp:TextBox ID="Newusername" runat="server" Style="display: none"></asp:TextBox>
<asp:TextBox ID="NewRealname" runat="server" Width="70%"></asp:TextBox><a href="javascript:void(0)" ><img id="Newimg1" runat="server" alt="" src="../images/FDJ.gif" border="0" /></a>
</td>
<td>
<asp:TextBox ID="Newendtime" Width="200" runat="server" Text='<%# DataBinder.Eval(Container,"DataItem.endtime") %>' onclick="setDayHM(this);" ></asp:TextBox>
</td>
<td>
<asp:TextBox ID="Newbeizhu" runat="server" Width="400"></asp:TextBox>
</td>
<td>
<asp:Button ID="b" runat="server" Text="添加新纪录" OnClick="AddClick1" />
</td>
</tr>
</table>
</EmptyDataTemplate>
</asp:GridView>
后台rowboundprotected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (EditId > 0)
{
//如果绑定数据源是DatarReader,则使用下面的方法:
//System.Data.Common.DbDataRecord rowItem = (System.Data.Common.DbDataRecord)e.Row.DataItem;
//如果绑定是 DataView,则使用此方法
System.Data.DataRowView rowItem = (System.Data.DataRowView)e.Row.DataItem;
if (rowItem["id"].ToString().Equals(EditId.ToString()))
{
//隐藏显示的文字
PlaceHolder LabelmettingSX = e.Row.FindControl("LabelmettingSX") as PlaceHolder;
LabelmettingSX.Visible = false;
PlaceHolder LabelRealname = e.Row.FindControl("LabelRealname") as PlaceHolder;
LabelRealname.Visible = false;
PlaceHolder Labelendtime = e.Row.FindControl("Labelendtime") as PlaceHolder;
Labelendtime.Visible = false;
PlaceHolder Labelbeizhu = e.Row.FindControl("Labelbeizhu") as PlaceHolder;
Labelbeizhu.Visible = false; //打开编辑框
DropDownList mettingSX = e.Row.FindControl("mettingSX") as DropDownList;
mettingSX.Visible = true;
TextBox Realname = e.Row.FindControl("Realname") as TextBox;
Realname.Visible = true;
TextBox username = e.Row.FindControl("username") as TextBox;
username.Visible = true;
HtmlImage img1 = e.Row.FindControl("img1") as HtmlImage;
img1.Visible = true;
img1.Attributes.Add("onclick", "openuser1('" + Realname.ClientID + "','" + username.ClientID + "')");
TextBox endtime = e.Row.FindControl("endtime") as TextBox;
endtime.Visible = true;
TextBox beizhu = e.Row.FindControl("beizhu") as TextBox;
beizhu.Visible = true;
//赋原来的值 //显示编辑更新按钮
Panel PanelNormal = e.Row.FindControl("PanelNormal") as Panel;
PanelNormal.Visible = false;
Panel PanelUpdate = e.Row.FindControl("PanelUpdate") as Panel;
PanelUpdate.Visible = true;
}
}
}
}
gridview列中有一个img,点击出发弹窗事件,点击修改的时候 如下面的后台代码,onclick可以触发
但是gridview的注脚中的img点击以后无法触发事件。请教怎么给gridview注脚中控件添加onclick事件啊
前台<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id"
OnRowDataBound="GridView1_RowDataBound" ShowFooter="true" Width="100%"
ondatabound="GridView1_DataBound" >
<HeaderStyle BackColor="#507CD1" Font-Bold="true" />
<Columns>
<asp:TemplateField HeaderText="负责人员">
<ItemTemplate>
<asp:PlaceHolder ID="LabelRealname" runat="server">
<%#Eval("Realname")%></asp:PlaceHolder>
<asp:TextBox ID="username" runat="server" Style="display: none" Visible="false"></asp:TextBox>
<asp:TextBox ID="Realname" runat="server" Width="70%" Visible="false"></asp:TextBox><a href="javascript:void(0)"><img id="img1" runat="server" alt="" src="../images/FDJ.gif" border="0" Visible="false"/></a>
</ItemTemplate>
<ItemStyle Width="200" BorderColor="#507CD1" BorderWidth="1px" Height="23px"/>
<FooterTemplate>
<asp:TextBox ID="Newusername" runat="server" Style="display: none"></asp:TextBox>
<asp:TextBox ID="NewRealname" runat="server" Width="70%"></asp:TextBox><a href="javascript:void(0)" ><img id="Newimg1" runat="server" alt="" src="../images/FDJ.gif" border="0" /></a>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="任务备注">
<ItemTemplate>
<asp:PlaceHolder ID="Labelbeizhu" runat="server">
<%#Eval("beizhu")%></asp:PlaceHolder>
<asp:TextBox ID="beizhu" Width="100%" runat="server" Visible="false"></asp:TextBox>
</ItemTemplate>
<ItemStyle Width="400" BorderColor="#507CD1" BorderWidth="1px" Height="23px"/>
<FooterTemplate>
<asp:TextBox ID="Newbeizhu" runat="server" Width="98%"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<asp:Panel ID="PanelNormal" runat="server">
<asp:Button ID="EditButton" runat="server" Text="修改" OnClick="EditClick1" CommandArgument='<%#Eval("id") %>' />
<asp:Button ID="DeleteButton" runat="server" Text="删除" OnClick="DeleteClick1" CommandArgument='<%#Eval("id") %>' />
</asp:Panel>
<asp:Panel ID="PanelUpdate" runat="server" Visible="false">
<asp:Button ID="UpdateButton" runat="server" Text="更新" OnClick="UpdateClick1" CommandArgument='<%#Eval("id") %>' />
<asp:Button ID="CancelButton" runat="server" Text="取消" OnClick="CancelClick1" />
</asp:Panel>
</ItemTemplate>
<FooterTemplate>
<asp:Button ID="AddButton" runat="server" Text="添加新纪录" OnClick="AddClick1" />
</FooterTemplate>
</asp:TemplateField>
</Columns>
<RowStyle BackColor="#BBFFFF" ForeColor="Black" />
<SelectedRowStyle BackColor="#BBFFFF" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#BBFFFF" ForeColor="Black" HorizontalAlign="Right" />
<HeaderStyle BackColor="#BBFFFF" Font-Bold="True" ForeColor="#000000" Wrap="False" />
<AlternatingRowStyle BackColor="#BBFFFF" />
<EmptyDataTemplate>
<table cellspacing="0" rules="all" border="1" style="border-collapse: collapse;">
<tr>
<th>材料名称</th>
<th>负责人员</th>
<th>时间要求</th>
<th>任务备注</th>
<th>操作</th>
</tr>
<tr>
<td>
<asp:DropDownList runat="server" ID="NewmettingSX" DataSourceID="SqlDataSource2" DataTextField="mettingSX" DataValueField="mettingSX" Width="200">
<asp:ListItem Value="——请选择——">——请选择——</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:qpoaConnectionString7 %>"
SelectCommand="SELECT [mettingSX] FROM [mettingAP] where [class]='材料准备'"></asp:SqlDataSource>
</td>
<td>
<asp:TextBox ID="Newusername" runat="server" Style="display: none"></asp:TextBox>
<asp:TextBox ID="NewRealname" runat="server" Width="70%"></asp:TextBox><a href="javascript:void(0)" ><img id="Newimg1" runat="server" alt="" src="../images/FDJ.gif" border="0" /></a>
</td>
<td>
<asp:TextBox ID="Newendtime" Width="200" runat="server" Text='<%# DataBinder.Eval(Container,"DataItem.endtime") %>' onclick="setDayHM(this);" ></asp:TextBox>
</td>
<td>
<asp:TextBox ID="Newbeizhu" runat="server" Width="400"></asp:TextBox>
</td>
<td>
<asp:Button ID="b" runat="server" Text="添加新纪录" OnClick="AddClick1" />
</td>
</tr>
</table>
</EmptyDataTemplate>
</asp:GridView>
后台rowboundprotected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (EditId > 0)
{
//如果绑定数据源是DatarReader,则使用下面的方法:
//System.Data.Common.DbDataRecord rowItem = (System.Data.Common.DbDataRecord)e.Row.DataItem;
//如果绑定是 DataView,则使用此方法
System.Data.DataRowView rowItem = (System.Data.DataRowView)e.Row.DataItem;
if (rowItem["id"].ToString().Equals(EditId.ToString()))
{
//隐藏显示的文字
PlaceHolder LabelmettingSX = e.Row.FindControl("LabelmettingSX") as PlaceHolder;
LabelmettingSX.Visible = false;
PlaceHolder LabelRealname = e.Row.FindControl("LabelRealname") as PlaceHolder;
LabelRealname.Visible = false;
PlaceHolder Labelendtime = e.Row.FindControl("Labelendtime") as PlaceHolder;
Labelendtime.Visible = false;
PlaceHolder Labelbeizhu = e.Row.FindControl("Labelbeizhu") as PlaceHolder;
Labelbeizhu.Visible = false; //打开编辑框
DropDownList mettingSX = e.Row.FindControl("mettingSX") as DropDownList;
mettingSX.Visible = true;
TextBox Realname = e.Row.FindControl("Realname") as TextBox;
Realname.Visible = true;
TextBox username = e.Row.FindControl("username") as TextBox;
username.Visible = true;
HtmlImage img1 = e.Row.FindControl("img1") as HtmlImage;
img1.Visible = true;
img1.Attributes.Add("onclick", "openuser1('" + Realname.ClientID + "','" + username.ClientID + "')");
TextBox endtime = e.Row.FindControl("endtime") as TextBox;
endtime.Visible = true;
TextBox beizhu = e.Row.FindControl("beizhu") as TextBox;
beizhu.Visible = true;
//赋原来的值 //显示编辑更新按钮
Panel PanelNormal = e.Row.FindControl("PanelNormal") as Panel;
PanelNormal.Visible = false;
Panel PanelUpdate = e.Row.FindControl("PanelUpdate") as Panel;
PanelUpdate.Visible = true;
}
}
}
}
解决方案 »
- 关于服务器上执行代码的一点问题
- TreeView 选中节点。
- 再次问这个问题,ASP.NET如何调用非托管的DLL
- 急问:WIN7 homebasic版本怎么搭建ASP.NET服务器?
- IList<>想实现ds.Table[0].select()功能
- 我在一个ASPX页里面勇iframe显示另一个html页,如何在这个ASPX页里实现对iframe里显示的html页实现打印?谢谢
- =============急急急。。。谁帮我我就嫁给他!
- 如何用Request.Redirect在页面转换时弹出新的窗口? 深夜疑问!!!!!!!
- 请教一个关于asp.net发送XML的问题
- 关于TabIndex.
- 弱弱地问个关于网站后台的问题
- GridView字段里面的值怎么进行对比 着急着急
/// <summary>
/// 行绑定
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gvdata_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton lblDelete = e.Row.FindControl("lbDel") as LinkButton;//找到该控件,lbDel为模板列控件ID lblDelete.Attributes.Add("onclick", "ChkAmountselpA();");//添加onclick事件,ChkAmountselpA()为js方法
}
}是不是这个思路?
img1.Attributes.Add("onclick", "openuser1('" + Realname.ClientID + "','" + username
function openuser1(txtID,txtuer)
{
var num=Math.random();
var str=""+document.getElementById(txtuer).value+"|"+document.getElementById(txtID).value+"";
wName_1=window.showModalDialog("../OpenWindows/open_Username_two.aspx?tmp="+num+"&requeststr="+str+"","window", "dialogWidth:650px;DialogHeight=580px;status:no;scroll=yes;help:no");
var arr = wName_1.split("|");
for(var i=0;i<arr.length;i++)
{
document.getElementById(txtuer).value=arr[0];
document.getElementById(txtID).value=arr[1];
document.getElementById("Username").value=arr[0];
alert(000);
}
换成这样看有反应吗
protected void GridView1_DataBound(object sender, EventArgs e)
{
TextBox t = GridView1.FooterRow.FindControl("NewRealname") as TextBox;
TextBox u = GridView1.FooterRow.FindControl("Newusername") as TextBox;
HtmlImage x = GridView1.FooterRow.FindControl("Newimg1") as HtmlImage;
x.Attributes.Add("onclick", "openuser1('" + t.ClientID + "','" + u.ClientID + "')");
}这样可以触发事件 但问题是 如果数据库中没有数据 就报错 我写在databound中能触发,前提是必须数据库有数据并且读取出来了 才可以 否则报未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 263: protected void GridView1_DataBound(object sender, EventArgs e)
行 264: {
行 265: TextBox t = GridView1.FooterRow.FindControl("NewRealname") as TextBox;
行 266: TextBox u = GridView1.FooterRow.FindControl("Newusername") as TextBox;
行 267: HtmlImage x = GridView1.FooterRow.FindControl("Newimg1") as HtmlImage;
<table cellspacing="0" rules="all" border="1" style="border-collapse: collapse;">
<tr>
<th>安排事项</th>
<th>负责人员</th>
<th>时间要求</th>
<th>任务备注</th>
<th>操作</th>
</tr>
<tr>
<td>
<asp:DropDownList runat="server" ID="NewmettingSX" DataSourceID="SqlDataSource2" DataTextField="mettingSX" DataValueField="mettingSX" Width="200">
<asp:ListItem Value="——请选择——">——请选择——</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:qpoaConnectionString7 %>"
SelectCommand="SELECT [mettingSX] FROM [mettingAP] where [class]='其他安排'"></asp:SqlDataSource>
</td>
<td>
<asp:TextBox ID="Newusername" runat="server" Style="display: none"></asp:TextBox>
<asp:TextBox ID="NewRealname" runat="server" Width="70%"></asp:TextBox><a href="javascript:void(0)" ><img id="Newimg1" runat="server" alt="" src="../images/FDJ.gif" border="0" /></a>
</td>
<td>
<asp:TextBox ID="Newendtime" Width="200" runat="server" Text='<%# DataBinder.Eval(Container,"DataItem.endtime") %>' onclick="setDayHM(this);" ></asp:TextBox>
</td>
<td>
<asp:TextBox ID="Newbeizhu" runat="server" Width="400"></asp:TextBox>
</td>
<td>
<asp:Button ID="b" runat="server" Text="添加新纪录" OnClick="AddClick4" />
</td>
</tr>
</table>
</EmptyDataTemplate>这里面的img的onclick事件无法触发