如何在gridview中选择多个复选框并将这些复选框存储到数据库中 [英] How to select multiple checkbox in gridview and stored those checkbox into databse

查看:98
本文介绍了如何在gridview中选择多个复选框并将这些复选框存储到数据库中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何选择gridview中的多个复选框并将选中的复选框值存储到数据库...



我的设计页面为:



How to select multiple checkbox in gridview and stored those selected checkbox value into databse...

my design page is:

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"

        Height="298px" Width="593px"

        onselectedindexchanged="GridView1_SelectedIndexChanged"

        onrowdatabound="GridView1_RowDataBound">
        <Columns>
            <asp:BoundField HeaderText="ID" DataField="ID" />
            <asp:BoundField HeaderText="Product Name" DataField="ProductName" />
            <asp:BoundField HeaderText="Price" DataField="price" />
            <asp:BoundField HeaderText="Category" DataField="category" />
            <asp:TemplateField HeaderText="Product">
             <ItemTemplate>
             <asp:Image width="40" Height="40" ImageUrl='<%#Eval("path")%>' runat ="server"  ID="image1" />
             </ItemTemplate>
             </asp:TemplateField>
  <asp:TemplateField HeaderText="Select">
<ItemTemplate>
<asp:CheckBox ID="chkSelect" runat="server" />
</ItemTemplate>
</asp:TemplateField>
        </Columns>
    </asp:GridView>
</asp:Content>





我的c#编码是:



my c# coding is:

protected void Button1_Click(object sender, EventArgs e)
   {



for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox cb =(CheckBox)GridView1.Rows[i].Cells[0].FindControl("chkSelect");//Gets the


if (cb.Checked == true)
{
    
   // how to get those select values and how store those values in database
}
else
{ //Do something here when CheckBox is UnChecked }
}

}
}

推荐答案

将您选择的复选框值存储在字符串中: -

我使用的是Telerik RadGrid,你可以通过GridView修改它。

Store your selected checkbox value in string:-
I am using Telerik RadGrid, you can modify it by your GridView.
  string strMappedUser = "";
  foreach (GridDataItem gdt in gridUsers.MasterTableView.Items)
  {
      CheckBox chb = (CheckBox)gdt.FindControl("cbSelectUser");
      if (chb.Checked == true)
      {
        if (strMappedUser == "")
           strMappedUser = Convert.ToString(gdt.GetDataKeyValue("UserId"));
        else
           strMappedUser = strMappedUser + "," + Convert.ToString(gdt.GetDataKeyValue("UserId"));
     }
}





现在数据库使用此: -



Now in Database Use this :-

CREATE PROCEDURE Sp_Example (
	@aintUserId VARCHAR(500) = ''
	)
AS
BEGIN
	CREATE TABLE #tempTable (
		Id INT
		,UsID VARCHAR(50)
		)

	INSERT INTO #tempTable (
		id
		,UsID
		)
	SELECT Row AS ID
		,Value AS SetValue
	FROM dbo.fn_SplitForOrdering(@aintUserId, ',')

	INSERT INTO t_YourTable (UserId)
	SELECT UsID
	FROM #tempTable

	DROP TABLE #tempTable
END





这里是用于从分隔字符串返回varchar行集的函数





here is the function used for returning a varchar rowset from a delimited string

 CREATE FUNCTION dbo.fn_SplitForOrdering (
	@InputText VARCHAR(4000)
	,@Delimiter VARCHAR(10)
	)
RETURNS @Array TABLE (
	Row INT
	,Value VARCHAR(4000)
	)
AS
-----------------------------------------------------------  
-- returns a varchar rowset from a delimited string --  
-----------------------------------------------------------  
BEGIN
	DECLARE @Pos INT
	DECLARE @End INT
	DECLARE @TextLength INT
	DECLARE @DelimLength INT
	DECLARE @Row INT

	SET @TextLength = DataLength(@InputText)

	-- Exit function if no text is passed in  
	IF @TextLength = 0
		RETURN

	SET @Pos = 1
	SET @DelimLength = DataLength(@Delimiter)
	SET @Row = 1

	IF @DelimLength = 0
	BEGIN
		WHILE @Pos <= @TextLength
		BEGIN
			INSERT @Array (
				Row
				,Value
				)
			VALUES (
				@Row
				,SubString(@InputText, @Pos, 1)
				)

			SET @Pos = @Pos + 1
			SET @Row = @Row + 1
		END
	END
	ELSE
	BEGIN
		SET @InputText = @InputText + @Delimiter
		SET @End = CharIndex(@Delimiter, @InputText)

		WHILE @End > 0
		BEGIN
			INSERT @Array (
				Row
				,Value
				)
			VALUES (
				@Row
				,SubString(@InputText, @Pos, @End - @Pos)
				)

			SET @Pos = @End + @DelimLength
			SET @End = CharIndex(@Delimiter, @InputText, @Pos)
			SET @Row = @Row + 1
		END
	END

	RETURN
END





希望你能得到它。

祝你好运。



Hope you will get it.
Good luck.


这篇关于如何在gridview中选择多个复选框并将这些复选框存储到数据库中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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