簡體   English   中英

如何通過單選按鈕選擇並按一個按鈕來更新一行中某一列的記錄

[英]How to update a record of certain column of one row by selecting via radiobutton and pressing a button

我想在選擇單選按鈕后更新gridview中選定行的列。 例如,我有帶有ID,名稱,地址,電子郵件,電話,狀態等的Candidiate表。一旦選擇單選按鈕,它將與ID關聯。 然后,基於ID,我想更改為“狀態”列分配“ Y”或“ N”的記錄。 我已經實現了用ID綁定單選按鈕。 在那之后,我迷路了以正確的記錄行標識ID。 請幫助我提供示例代碼。

預先感謝。 Joe下面是我的html代碼。

 <asp:GridView ID="gvCandidates" runat="server" AutoGenerateColumns="False" 
    BackColor="Green" BorderColor="#CC9966" BorderStyle="None" AlternatingRowStyle-BackColor = "#C2D69B"
    BorderWidth="1px" CellPadding="4" AllowPaging = "true">
    <Columns>
       <asp:TemplateField HeaderText="Select One">
    <ItemTemplate>
      <input name="SelectedRadioButton" type="radio" 
                value='<%# Eval("CANDIDATE_ID") %>' />
    </ItemTemplate>
  </asp:TemplateField>
        <asp:BoundField DataField="CANDIDATE_ID" HeaderText="CANDIDATE_ID" 
            SortExpression="CANDIDATE_ID" />
        <asp:BoundField DataField="CANDIDATE_NAME" HeaderText="CANDIDATE_NAME" 
            SortExpression="CANDIDATE_NAME" />
        <asp:BoundField DataField="CANDIDATE_ADDRESS1" HeaderText="CANDIDATE_ADDRESS1" 
            SortExpression="CANDIDATE_ADDRESS1" />
        <asp:BoundField DataField="CANDIDATE_PHNO" HeaderText="CANDIDATE_PHNO" 
            SortExpression="CANDIDATE_PHNO" />
        <asp:BoundField DataField="CANDIDATE_EMAIL_ADDRESS" 
            HeaderText="CANDIDATE_EMAIL_ADDRESS" SortExpression="CANDIDATE_EMAIL_ADDRESS" />
        <asp:BoundField DataField="CANDIDATE_STATUS" HeaderText="CANDIDATE_STATUS" 
            SortExpression="CANDIDATE_STATUS" />
    </Columns>
</asp:GridView>

下面是我的C#代碼。

protected void btnAccepted_Click(object sender, EventArgs e)
{
  string CStatus = "Y";
  string selectedValueID = Request.Form["SelectedRadioButton"];
  lblMsgStatus.Visible = true;
  lblMsgStatus.Text = selectedValueID;


    compCon = new SqlConnection(strConnectionString);
    compCon.Open();
    string UpdateQuery = @"UPDATE CandidateDetails SET CANDIDATE_STATUS='Y' WHERE CANDIDATE_ID='@selectedValueID'";
    SqlCommand UpdateCandidateCommand = new SqlCommand(UpdateQuery, compCon);
    UpdateCandidateCommand.Connection = compCon;

    UpdateCandidateCommand.ExecuteNonQuery();
    compCon.Close();
    }

您應該使用:

string UpdateQuery = @"UPDATE CandidateDetails SET CANDIDATE_STATUS='Y' WHERE CANDIDATE_ID IN ( [SELECTED VALUES]);

並且為了[SELECTED VALUES],您應該放置逗號分隔的值
例如(1,2,4,7,9)或('a','f','amita','david')

如下所示,您可以獲取ID,如“測試”按鈕單擊所示:

    <asp:GridView ID="gv" AllowPaging="True" PageSize="10" runat="server" AutoGenerateColumns="false" OnRowDataBound="gv_RowDataBound" 
DataKeyNames="TestId">
        <Columns>
         <asp:BoundField HeaderText="Test" DataField="TestId" />
         <asp:TemplateField>
          <ItemTemplate>
            <asp:RadioButton ID="rbtn1" runat="server" Text="Yes" />
            <asp:RadioButton ID="rbtn2" runat="server" Text="No" />
          </ItemTemplate>
         </asp:TemplateField>
        </Columns>
        </asp:GridView>
        <asp:Button ID="btnTest" runat="server" Text="Test" OnClick="btnTest_Click" />


protected void btnTest_Click(object sender, EventArgs e)
{
 foreach (GridViewRow gvrow in gv.Rows)
 {
   string theDataKey = gv.DataKeys[gvrow.RowIndex].Value.ToString();//Id field
   RadioButton rbtn1 = gvrow.FindControl("rbtn1") as RadioButton;
   RadioButton rbtn2 = gvrow.FindControl("rbtn2") as RadioButton;
   string YesNo = "N";//set default value
   if(rbtn1.Checked)
   YesNo = "Y";
   else if(rbtn2.Checked)
   YesNo = "N";
  }
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM