在图像上显示日历按钮单击gridview [英] Show calender on image button click in gridview

查看:46
本文介绍了在图像上显示日历按钮单击gridview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在gridview中有一个gridview,日历和图像按钮。点击图片时给出错误。代码如下。

  protected   void  imgEndDate_Click1( object  sender,ImageClickEventArgs e)
{

Calendar calendDate =
(Calendar)grvResourceDetail.SelectedRow .Cells [ 1 ]。FindControl( calEndDate< /跨度>);
calendDate.Visible = true ;
}





给出错误

对象引用未设置为对象的实例。



日历控件和图像按钮都在gridview的itemtemplate字段中。无法找到null对象。

解决方案

Exanple:试试这个



 <%@     Page    语言  =  C#    AutoEventWireup   =  true    CodeBehind   =  Default.aspx.cs   继承  =  WebApplication1._Default   % >  

< !DOCTYPE html PUBLIC - // W3C // DTD XHTML 1.0 Transitional // EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd >

< html xmlns = htt p://www.w3.org/1999/xhtml >
< head runat = 服务器 >
< title > < / title >
< span class =code-keyword>< / head >
< body >
< 表格 id = form1 runat = server >
< div >
< asp:GridView ID = GridView1 runat = 服务器 AutoGenerateColumns = false OnRowCommand = GridView1_RowCommand >
< < span class =code-leadattribute>列 >
< asp:TemplateField HeaderText = Cal >

< ItemTemplate >
< asp:日历 runat = server 可见 = false > < / asp:Calendar >
< < span class =code-leadattribute> / ItemTemplate >
< / asp:TemplateField >
< ; asp:TemplateField HeaderText = img >
< ItemTemplate >
< asp:ImageButton ID = ImageButton1 CommandName = img runat = server text = 显示 / >
< / ItemTemplate >
< / asp:TemplateField >
< /列 >

< / asp:GridView >
< / div >
< / form >
< / body >
< / html >













 使用系统; 
使用 System.Collections.Generic;
使用 System.Web;
使用 System.Web.UI;
使用 System.Web.UI.WebControls;

命名空间 WebApplication1
{
public partial class _Default:System.Web.UI.Page
{
protected void Page_Load( object sender,EventArgs e)
{

}

受保护 void GridView1_RowCommand( object sender,GridViewCommandEventArgs e)
{
if (e.CommandName == img
{
int index = Convert.ToInt32(e.CommandArgument.ToString());
日历calendDate =
(日历)GridView1.Rows [index] .FindControl( calEndDate );
calendDate.Visible = true ;
}

}
}
}


而不是SelectedRow.Cells [1]

你可以尝试这个

日历calendDate =

(日历)grvResourceDetail.Rows [0] .FindControl(calEndDate);

I Have a gridview, calender and image button in gridview. While clicking on image its giving error. The code is as below.

protected void imgEndDate_Click1(object sender, ImageClickEventArgs e)
        {
            
            Calendar calendDate =
                             (Calendar)grvResourceDetail.SelectedRow.Cells[1].FindControl("calEndDate");
            calendDate.Visible = true;
        }



Its giving the error

Object reference not set to an instance of an object.


Both calender control and image button are in itemtemplate field of gridview. Unable to find null object.

解决方案

Exanple: try this

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowCommand="GridView1_RowCommand">
            <Columns>
                <asp:TemplateField HeaderText="Cal">
                    
                    <ItemTemplate>
                        <asp:Calendar runat="server" Visible="false"></asp:Calendar>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="img">
                    <ItemTemplate>
                        <asp:ImageButton ID="ImageButton1" CommandName="img" runat="server" text="show"/>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>

        </asp:GridView>
    </div>
    </form>
</body>
</html>







using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName=="img")
            {
                int index = Convert.ToInt32(e.CommandArgument.ToString());
                Calendar calendDate =
                             (Calendar)GridView1.Rows[index].FindControl("calEndDate");
            calendDate.Visible = true;
            }
           
        }
    }
}


Instead of SelectedRow.Cells[1]
you can try this one
Calendar calendDate =
(Calendar)grvResourceDetail.Rows[0].FindControl("calEndDate");


这篇关于在图像上显示日历按钮单击gridview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆