如何使用复选框读取所选值frm gridview [英] how to read the selected values frm gridview using checkbox

查看:116
本文介绍了如何使用复选框读取所选值frm gridview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法读取gridview中的选定值...它在调试时返回空值.. 
请修复此问题..

im尝试使用复选框发送电子邮件给选定用户frm gridview

我在
$ b $中获取错误字符串email = row.Cells [2] .Text;
s.To.Add(电子邮件);

它无法读取gridview中的选定值...


源文件---------------- ---
<%@ 页面 语言 = < span class =code-keyword> C# Debug = true AutoEventWireup = true CodeFile = Default.aspx.cs 继承 = _默认 %>

< !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 >
< / head >
< body >
< 表格 id = form1 < span class =code-attribute> runat
= server >
< div >
< table >
< tr < span class =code-keyword>>
< td >
subject
< / td >
< td >
< asp:TextBox ID = txtsubject runat = server > < / asp:TextBox >

< / td > < / tr >
< tr >
< td > 消息< / td >
< td >
< asp:TextBox ID = txtmessage runat = server TextMode = MultiLine > < / asp:TextBox >
< / td >
< / tr >
< / table >
< / div >
< div < span class =code-keyword>>

< / div >

< < span class =code-leadattribute> div >

< / div >
< div >
< asp:按钮 ID = btnsubmit < span class =code-attribute> runat = server 文本 = 发送 onclick = btnsubmit_Click / < span class =code-keyword>>
< / div >
< asp:GridView ID = < span class =code-keyword> GridView1 runat = server AutoGenerateColumns = False
>
< >
< asp :TemplateField HeaderText = sno >
< ItemTemplate >
< asp:标签 ID = lbl1 runat = server 正文 =' <% #bind( sno%> ' > < / asp:Label >
< / ItemTemplate >
< / asp:TemplateField >
< asp:TemplateField HeaderText = name >
< ItemTemplate >
< asp:标签 ID = lbl2 runat = server 文本 =' <% #bind( name%> ' > < < span class =code-leadattribute> / asp:Label >
< / ItemTemplate >
< ; / asp:TemplateField >
< asp:TemplateField HeaderText = mail >
< ItemTemplate >
< asp:标签 ID = lbl3 runat = server 文字 =' <% #bind( mailid%> ' > < / asp:标签 >
< / ItemTemplate >
< / asp:TemplateField >
< asp:TemplateField >
< HeaderTemplate >
< asp: CheckBox ID = chkhdr runat = server / >
< / HeaderTemplate >
< ItemTemplate >
< asp:CheckBox ID = < span class =code-keyword> CheckBox1 runat = server AutoPostBack = true / >
< / ItemTemplate >
< / asp:TemplateField >
< /列 >


< / asp:GridView >

< / form >
< / body >
< / html >


aspx.cs文件...................................... ...


protected void btnsubmit_Click(object sender,EventArgs e)
{


string id = string.Empty;


MailMessage s = new MailMessage();
s.From = new MailAddress(priyadharshan91@gmail.com);
s.Subject = txtsubject.Text;
s.Body = txtmessage.Text;



foreach(GridView1.Rows中的GridViewRow行)
{


CheckBox chk =(CheckBox)行。的FindControl( CheckBox1);
{

if(chk.Checked == true)
{

string email = row.Cells [2] .Text;
s.To.Add(email);


SmtpClient smtp = new SmtpClient();
smtp.Host =smtp.gmail.com;

smtp.EnableSsl = true;

NetworkCredential p = new NetworkCredential();
smtp.UseDefaultCredentials = false;
smtp.Credentials = new System.Net.NetworkCredential(priyadharshan91@gmail.com,********);

smtp.EnableSsl = true;

smtp.Send(s);
}
}

}
}

解决方案

退房以下示例并根据您的需要进行调整:

在aspx页面上:

 < ;%@     Page    语言  =  C#    AutoEventWireup   =  true    CodeFile   =  Default14.aspx.cs   继承  =  Default14   %>  
< span class =code-keyword>< !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 id = Head1 runat = 服务器 >
< span class =code-keyword>< title > < / title >
< / head >
< 正文 >
< 表格 id = form1 runat = server < span class =code-keyword>>
< asp:GridView ID = GridView1 runat = 服务器 >
< >
< asp:TemplateField >
< HeaderTemplate >
< asp:CheckBox runat = server < span class =code-attribute> / >
< / HeaderTemplate >
< ItemTemplate >
< asp:CheckBox ID = CheckBox1 runat = server / >
< / ItemTemplate >
< / asp:TemplateField >
< / Columns >
< / asp:GridView >
< asp:按钮 ID = Button1 runat = server onclick = Button1_Click 文字 = 按钮 / >
< < span class =code-leadattribute> asp:TextBox
ID = TextBox1 runat = server > < / asp:TextBox >
< / form >
< / body >
< / html >



代码背后:

使用System; 
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.UI;
使用System.Web.UI.WebControls;
使用System.Data;

public partial class Default14:System.Web.UI.Page
{
protected void Page_Load(object sender,EventArgs e)
{
if( IsPostBack == true)
return;
DataTable dtTemp = new DataTable();
dtTemp.Columns.Add(学生证);
dtTemp.Columns.Add(名字);
dtTemp.Columns.Add(姓氏);
dtTemp.Rows.Add(1,Peter,Leow);
dtTemp.Rows.Add(2,James,Song);
dtTemp.Rows.Add(3,Mick,Sam);
dtTemp.Rows.Add(4,MARY,酷);
GridView1.DataSource = dtTemp;
GridView1.DataBind();
}
protected void Button1_Click(object sender,EventArgs e)
{
foreach(GridView1.Rows中的GridViewRow行)
{
CheckBox chkBox =(复选框)row.FindControl( CheckBox1);
if(chkBox!= null&& chkBox.Checked)
{
TextBox1.Text = row.Cells [1] .Text.ToString();
}
}
}
}


Hai

如果你选中了复选框,如果你点击按钮,代码是否在if条件内?

 如果( chk.Checked == true)
{}





请使用更新面板然后只有当页面获取后,复选框不清除在页面加载中,你在IsPostBack里面的gridview中绑定数据吗?



在gridview表单页面加载事件中发布你的数据绑定代码。


您可以查看这些文章:



http://aspsolutionkirit.blogspot.in/2013/08/how-to-send-email-to-multiple-user.html [ ^ ] < br $> b $ b

http://www.aspdotnet-suresh.com/2013/03/get-gridview-row-values-when -checkbox.html [ ^ ]



http://www.c-sharpcorner.com/Forums/Thread/83939/ [ ^ ]



http://www.c-sharpcorner.com/uploadfile/MohanKumar.R/selecting-checkboxes-inside-the-gridview-control / [ ^ ]



这些Arti也提供源代码克莱斯

I cant able to read selected values in gridview... it returns null value while debugging..
kindly fix this issue..

im trying to send email to selected users frm gridview using checkbox

im getting error in

 string email =row.Cells[2].Text;
                        s.To.Add(email);

It cant the read the selected values in gridview...


source file-------------------
<%@ Page Language="C#" Debug="true" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_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>
    <table>
    <tr>
    <td>
    subject
    </td>
    <td>
    <asp:TextBox ID="txtsubject" runat="server"></asp:TextBox>

    </td> </tr>
    <tr>
    <td>message</td>
   <td>
   <asp:TextBox ID="txtmessage" runat="server" TextMode="MultiLine"></asp:TextBox>
   </td>
    </tr>
    </table>
    </div>
    <div>

    </div>

    <div>

    </div>
    <div>
    <asp:Button ID="btnsubmit" runat="server" Text="Send" onclick="btnsubmit_Click" />
    </div>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
            <Columns>
                <asp:TemplateField HeaderText="sno">
               <ItemTemplate>
               <asp:Label ID="lbl1" runat="server" Text='<%#bind("sno") %>'></asp:Label>
               </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="name">
                <ItemTemplate>
                <asp:Label ID="lbl2" runat="server" Text='<%#bind("name") %>'></asp:Label>
                </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="mail">
                <ItemTemplate>
                <asp:Label ID="lbl3" runat="server" Text='<%#bind("mailid") %>'></asp:Label>
                </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                <HeaderTemplate>
                                <asp:CheckBox ID="chkhdr" runat="server" />
                            </HeaderTemplate>
                <ItemTemplate>
                <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="true"/>
                </ItemTemplate>
                </asp:TemplateField>
            </Columns>


        </asp:GridView>

    </form>
</body>
</html>


aspx.cs file.........................................


 protected void btnsubmit_Click(object sender, EventArgs e)
    {


        string id = string.Empty;


        MailMessage s = new MailMessage();
        s.From = new MailAddress("priyadharshan91@gmail.com");
        s.Subject = txtsubject.Text;
        s.Body = txtmessage.Text;



        foreach (GridViewRow row in GridView1.Rows)
        {


                CheckBox chk = (CheckBox)row.FindControl("CheckBox1");
                {

                    if (chk.Checked==true)
                    {

                         string email =row.Cells[2].Text;
                        s.To.Add(email);

                        SmtpClient smtp = new SmtpClient();
                        smtp.Host = "smtp.gmail.com";

                        smtp.EnableSsl = true;

                        NetworkCredential p = new NetworkCredential();
                        smtp.UseDefaultCredentials = false;
 smtp.Credentials = new System.Net.NetworkCredential("priyadharshan91@gmail.com", "********");

                        smtp.EnableSsl = true;

                        smtp.Send(s);
                    }
                }

            }
        }

解决方案

Check out the following example and adapt it to your need:
on the aspx page:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default14.aspx.cs" Inherits="Default14" %>
<!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 id="Head1" runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:GridView ID="GridView1" runat="server">
        <Columns>
            <asp:TemplateField>
                <HeaderTemplate>
                    <asp:CheckBox runat="server" />
                </HeaderTemplate>
                <ItemTemplate>
                    <asp:CheckBox ID="CheckBox1" runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    </form>
</body>
</html>


on the code behind:

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

public partial class Default14 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack == true)
            return;
        DataTable dtTemp = new DataTable();
        dtTemp.Columns.Add("Student ID");
        dtTemp.Columns.Add("First Name");
        dtTemp.Columns.Add("Last Name");
        dtTemp.Rows.Add("1", "Peter", "Leow");
        dtTemp.Rows.Add("2", "James", "Song");
        dtTemp.Rows.Add("3", "Mick", "Sam");
        dtTemp.Rows.Add("4", "MAry", "Cool");
        GridView1.DataSource = dtTemp;
        GridView1.DataBind(); 
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        foreach (GridViewRow row in GridView1.Rows)
        {
            CheckBox chkBox = (CheckBox)row.FindControl("CheckBox1");
            if (chkBox != null && chkBox.Checked)
            {
                TextBox1.Text = row.Cells[1].Text.ToString(); 
            }
        }
    }
}


Hai
If u checked check box and if u click button,the code goes inside of if condition or not ?

if (chk.Checked==true)
                   {}



pls use update panel then only checked box not clear when page get post back.R u bind data in gridview inside of IsPostBack in page load ?

Post ur data bind code in gridview form page load event.


You can check these Articles:

http://aspsolutionkirit.blogspot.in/2013/08/how-to-send-email-to-multiple-user.html[^]

http://www.aspdotnet-suresh.com/2013/03/get-gridview-row-values-when-checkbox.html[^]

http://www.c-sharpcorner.com/Forums/Thread/83939/[^]

http://www.c-sharpcorner.com/uploadfile/MohanKumar.R/selecting-checkboxes-inside-the-gridview-control/[^]

Source Code is also available with these Articles


这篇关于如何使用复选框读取所选值frm gridview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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