如何设置填充复选框在gridview中从操作按钮单击检查(true)

时间:2015-12-13 13:42:50

标签: c#

我有一个带有选项复选框的gridview。当我选中带复选框的行然后按下按钮 选中发送到带参数选项的更新数据复选框。然后我的问题是, 如何设置填充复选框在gridview中从操作按钮单击检查(true)。

这是我的观点。

<asp:GridView runat="server" ID="gvInquiryDocument"> 
                    <Columns>
                        <asp:TemplateField>
                            <HeaderTemplate>
                                <asp:CheckBox ID="chkAll" runat="server" onclick="checkAll(this);" />
                            </HeaderTemplate>
                            <ItemTemplate>
                                <asp:CheckBox ID="ChkSelect" runat="server" onclick="Check_Click(this)" />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="ID" Visible="false">
                            <ItemTemplate>
                                <asp:TextBox ID="hdGetId" runat="server" Text='<%# Eval("ANO") %>'
                                    Visible="false"></asp:TextBox>
                                <asp:TextBox ID="txtDeliveryBy" Visible="false" runat="server" Text='<%# Eval("DeliveryBy") %>'></asp:TextBox>
                                <asp:TextBox ID="txtPolicyNo" Visible="false" runat="server" Text='<%# Eval("PolicyNo") %>'></asp:TextBox>
                            </ItemTemplate>
                        </asp:TemplateField>
</Columns>
</asp:GridView>

这是我的.cs

protected void btnSend_Click(object sender, EventArgs e)
    {
        DMSStatus dmsStatus = new DMSStatus();

        foreach (GridViewRow di in gvInquiryDocument.Rows)
        {
            CheckBox chk = (CheckBox)di.FindControl("ChkSelect");
            if (chk.Checked)
            {
                TextBox tx = (TextBox)di.FindControl("hdGetId");
                var Ano = Server.HtmlDecode(tx.Text.Trim());
                TextBox txtPolicyNo = (TextBox)di.FindControl("txtPolicyNo");
                var PolicyNo = Server.HtmlDecode(txtPolicyNo.Text.Trim()); 

                dmsStatus.ANO = Convert.ToInt16(Ano);
                dmsStatus.PolicyNo = PolicyNo; 
                dmsStatus.UpdateData();

                bindData();                
                //i want to set code after binddata....
            } 
        }           
    }

private void bindData()
{
    DMSStatus dmsStatus = new DMSStatus();            
    DataSet ds = dmsStatus.GetData(); 
    gvInquiryDocument.DataSource = ds;
    gvInquiryDocument.DataBind(); 
}
请给我解决方案。 感谢。

1 个答案:

答案 0 :(得分:0)

这可能不是您正在处理的最佳答案,但这里有一个解决方案。如果你能够在你的网站上使用AJAX调用,并且如果你想在下面使用一点JQuery是一种方法来处理从已检查的网格视图行中保存值列表,在java脚本中,然后使用AJAX将这些ID发送到您的网站对该集合做了一些事情。

<script type="text/javascript">

function btnSend(sender, args){
        var idCollection = new Array();
        $('#<%=gvInquiryDocument.ClientID%>').find("input:checkbox").each(function () {
            if (this.checked) { 
                //Find the ID value in the row by cell index
                idCollection.push(this.parentElement.cells[3].innerHTML )
            }
        }

    myWebServiceInterfaceClass.MyWebsiteServiceProxy.UpdateIdCollection(idCollection, SaveResults , ProxyCallFailed);
}

    function SaveResults(results){
        //If you want to send anything back to the site and do something after updating the ids
        //Or just refresh the page and let the onload event repopulate your grid on postback
    }

    function ProxyCallFailed(){
        //Something bad happened on your ajax call 
    }