选中gridview中的一行后,点一个button1,弹出对话框。对话框提示的内容为:选中这行的某些字段。假如为:“请确定给单号111,手机号为13589749621发短信吗?”另,页面有一个textbox放手机号,若这个textbox有值18958900254,替换这行的手机号值。则对话框提示为:“请确定给单号111,手机号为18958900254发短信吗?”
我若在page_load 里写
button1.Attributes.Add("onclick", "return confirm('"+mesg+"');");
第一次,选中一行后,提示里的值都为空值。
在button1里写,ClientScript.RegisterStartupScript(this.GetType(), DateTime.Now.ToString(), "confirm('"+mesg+"');");
会先执行发送短信,再弹出提示框。button1代码:
  if(CheckedIndexs.Length<0) return;
                        foreach(int  index  in CheckedIndexs)
                        {
                            string xh = this.GridView1.Rows[index].Cells[1].Text; //序号
                            string dlcp =this.GridView1.Rows[index].Cells[2].Text; //车牌号
                            string dh = ((Label)(this.GridView1.Rows[index].FindControl("lbdzbh"))).Text.Replace("<br>", "."); //单号
                            string iphone = GetDriverPhone(dlcp); //手机号
                            if (string.IsNullOrEmpty(iphone)) return;
                            ClientScript.RegisterStartupScript(this.GetType(), DateTime.Now.ToString(), "confirm('车牌号:" + dlcp + " 单号为:" +dh + "的信息发送给" + iphone + "吗?');", true);  //(1)
                           
                           
                            if (string.IsNullOrEmpty(dlcp))
                            {                                ClientScript.RegisterStartupScript(this.GetType(), DateTime.Now.ToString(), "alert('大陆车牌为空!');", true);
                                return;
                            }
                            else   
                            {
                                string messageContext = "您好!{0}单号{1}捆绑成功!" + ConfigurationManager.AppSettings["UserMessage"].ToString();
                                messageContext = string.Format(messageContext, dlcp.Substring(2), dh);
                              SendMessageBLL.SendMessge(iphone, messageContext); //(2)
                            }
                       }

解决方案 »

  1.   

    用onClientClick="return confirm('')"
      

  2.   

    我觉得不能写在page_load里面应该写在gridview的行绑定事件里面.button
    根据出发item的事情来设置你的text
      

  3.   

    在gridview的行里绑定button,那样提示的内容是绑定值,那textbox的值起不了作用。
      

  4.   

    对,你在gridview里的itembound里
      

  5.   

    Default.aspx
    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %><%@ Register Assembly="YYControls" Namespace="YYControls" TagPrefix="yyc" %><%@ Register Assembly="Brettle.Web.NeatUpload" Namespace="Brettle.Web.NeatUpload"
        TagPrefix="Upload" %><!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>
         <script language="javascript" type="text/javascript">
          //单选择
      function AddRemoveValues(oChk) 
      { 
         if(oChk.checked)
           {
             
      
            form1.HdnSelectedValues.value += oChk.value+","; 
               
             
           }
           else
           {
              form1.HdnSelectedValues.value = form1.HdnSelectedValues.value.replace("," + oChk.value+"",""); 
            
           }
      }
     ///全选
    function CheckAll(checkbox)
    {
      var elements = form1.elements;  
      for(var i = 0;i < elements.length;i++)
      {  
        if(elements[i].type == "checkbox"  &&  elements[i].id != checkbox.id) 
        {
          elements[i].checked = checkbox.checked;
           
           
            AddRemoveValues(elements[i],form1);
           
         
        }
       } 
    }     </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
                <Columns>
                  <asp:TemplateField>
                        <ItemTemplate>
                           
                            <input type="checkbox" id="chkSelect" onclick="javascript:AddRemoveValues(this);" name="chkSelect" runat="server"
                                value='<%# Eval("id")%> '/>                     </ItemTemplate>
                        <HeaderTemplate>
                           <input type='checkbox' id='All' name='All' onclick="CheckAll(this)"  runat="server"/>全选                    </HeaderTemplate>
                        <ItemStyle Width="5%" />
                    </asp:TemplateField>
                    <asp:BoundField DataField="id" HeaderText="编号" />
                    <asp:BoundField DataField="name" HeaderText="姓名" />
                </Columns>
            </asp:GridView>
            &nbsp;
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /><br />
               <asp:HiddenField ID="HdnSelectedValues" runat="server" />
            <br />
            <br />
            
        </form>
    </body>
    </html>
      

  6.   

     protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                LoadData();
             }
            if (CheckIndexs.Length.Equals(1))
            {
                this.Button1.Attributes.Add("onclick", "return confirm('编号:" + this.GridView1.Rows[CheckIndexs[0]].Cells[1].Text + " 姓名:" + GetNo(this.GridView1.Rows[CheckIndexs[0]].Cells[2].Text) + "吗?');");
            }
        }    protected int[] CheckIndexs
        {
            
            get
            {
                List<int> checkedIndex = new List<int>();
                string type = HdnSelectedValues.Value;            if(type.Length>0)
                { 
                    type =type.TrimEnd(new char[] { ',' });
                     string[] strlst= type.Split(',');
                     foreach (string index in strlst)
                     {
                         checkedIndex.Add(Convert.ToInt32(index));
                     }
                
                }
                return checkedIndex.ToArray();
            }    }    private string GetNo(string name)
        {
            return this.TextBox1.Text.Trim().Length > 0 ? TextBox1.Text : name;
           
        }
       
        private void LoadData()
        {
            DataTable dt = new DataTable();
            DataColumn id = new DataColumn("id");
            dt.Columns.Add(id);
            DataColumn name = new DataColumn("name");
            dt.Columns.Add(name);
            for (int i = 0; i <= 10; i++)
            {
                DataRow row = dt.NewRow();
                row["id"] = i;
                row["name"] = "name" + i.ToString();
                dt.Rows.Add(row);
            }
            this.GridView1.DataSource = dt.DefaultView;
            this.GridView1.DataBind();
            this.SmartGridView1.DataSource = dt;
            this.SmartGridView1.DataBind();
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            //这必须在弹出对话框的前提下,才能做下面的操作。
         }
      

  7.   

         ClientScript.RegisterStartupScript(this.GetType(), DateTime.Now.ToString(), "return confirm('车牌号:" + dlcp + " 单号为:" +dh + "的信息发送给" + iphone + "吗?');", true);  //(1) 
      

  8.   

    onClientClick="return confirm('')", 这个事button的客户端响应事件,首先通过脚本对其进行客户端验证,onClientClick接收的返回值必须是true或者false,true则执行后台.cs代码中对应的click事件,false则停止执行.cs代码中对应的click事件代码。