C# 单选按钮将中继器控件中的选定值插入SQL数据库
我已经实现了代码,在中继器控制与单选按钮选择 现在,我想将所选单选按钮值插入数据库 代码:C# 单选按钮将中继器控件中的选定值插入SQL数据库,c#,asp.net,C#,Asp.net,我已经实现了代码,在中继器控制与单选按钮选择 现在,我想将所选单选按钮值插入数据库 代码: <div id="ManageAddressPage" runat="server" style="margin-top: 10px"> <asp:Repeater ID="ManageAddressRepeater" runat="server"> <
<div id="ManageAddressPage" runat="server" style="margin-top: 10px">
<asp:Repeater ID="ManageAddressRepeater" runat="server">
<ItemTemplate>
<div class="col-8 col-m-12" style="border: solid 1px LightGray">
<div>
<asp:RadioButton ID="RadioButton1" runat="server" Text='<%#Eval("Name") %>' OnClick="javascript:singleselection(this.id)" />
</div>
</div>
</ItemTemplate>
</asp:Repeater>
<asp:Button ID="Button3" runat="server" CssClass="btnProfileSave" Text="Save Address" OnClick="Button3_Click" />
</div>
Javascript:选择一个值
<script type="text/javascript">
function singleselection(rbid) {
var rbutton = document.getElementById(rbid);
var rbuttonlist = document.getElementsByTagName("input")
for (i = 0; i < rbuttonlist.length; i++) {
if (rbuttonlist[i].type == "radio" && rbuttonlist[i].id !== rbutton.id) {
rbuttonlist[i].checked = false;
}
}
}
</script>
功能选择(rbid){
var rbutton=document.getElementById(rbid);
var rbuttonlist=document.getElementsByTagName(“输入”)
对于(i=0;i
好吧,我们这里应该有更多信息
我们假设某个公司、某个人或任何东西(主表)
然后我们假设我们显示地址的子记录,并且您想要选择哪个是活动的。我们可能有2个或5个地址可供选择
因此,这非常表明在数据库中,这里需要哪个地址是活动的
这是我们的地址表-子表
好的,所以我们需要显示一些来自主reocrd的信息
然后对于孩子的记录-地址,我们需要把他们列出来
因此,我们的标记如下所示:
<div>
<br />
<asp:HiddenField ID="HotelID" runat="server" />
<div>
Hotel Name: <asp:label ID="txtHotel" runat="server" Font-Size="X-Large"></asp:label>
<br />
</div>
<h3>Select Active Address</h3>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<div style="border-style:solid;color:black;width:250px;float:left">
<asp:RadioButton ID="RadioButton1" runat="server"
Checked = '<%# Eval("Active") %>'
Text = '<%# Eval("AddressLocation") %>'
AutoPostBack="true"
PKID = '<%# Eval("ID") %>'
OnCheckedChanged="RadioButton1_CheckedChanged"
/>
<div style="padding:5px;text-align:right">
Location : <asp:TextBox ID="txtLoc" runat="server" Text ='<%# Eval("AddressLocation") %>' Width="130px" />
<br />
Address: <asp:TextBox ID="txtAddress" runat="server" Text ='<%# Eval("Address") %>' Width="130px" />
<br />
City: <asp:TextBox ID="txtCity" runat="server" Text ='<%# Eval("City") %>' Width="130px" />
<br />
<br />
</div>
</div>
<div style="clear:both;height:10px"></div>
</ItemTemplate>
</asp:Repeater>
<br />
</div>
protected void Page_Load(object sender, System.EventArgs e)
{
if (IsPostBack == false)
{
HotelID.Value = 19;
LoadData();
}
}
public void LoadData()
{
using (SqlCommand cmdSQL = new SqlCommand("SELECT * FROM tblAddress WHERE Hotel_ID = @ID",
new SqlConnection(My.Settings.TEST3)))
{
cmdSQL.Connection.Open();
cmdSQL.Parameters.Add("@ID", SqlDbType.Int).Value = HotelID.Value;
Repeater1.DataSource = cmdSQL.ExecuteReader;
Repeater1.DataBind();
cmdSQL.Connection.Close();
// show hotel name (parent reocord) - Parmater already set
cmdSQL.Connection.Open();
cmdSQL.CommandText = "SELECT HotelName from tblHotels WHERE ID = @ID";
txtHotel.Text = cmdSQL.ExecuteScalar;
}
}
protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
{
RadioButton btnRadio = sender;
// un-check all address - radio button can ONLY click if not selected, so we
// always assume checked = true
using (SqlCommand cmdSQL = new SqlCommand("UPDATE tblAddress SET Active = 0 WHERE Hotel_ID = @ID",
new SqlConnection(My.Settings.TEST3)))
{
cmdSQL.Connection.Open();
cmdSQL.Parameters.Add("@ID", SqlDbType.Int).Value = HotelID.Value;
cmdSQL.ExecuteNonQuery();
// Now set this address just clicked as active
cmdSQL.CommandText = "UPDATE tblAddress SET Active = 1 WHERE ID = @ID";
cmdSQL.Parameters.Clear();
cmdSQL.Parameters.Add("@ID", SqlDbType.Int).Value = btnRadio.Attributes.Item("PKID");
cmdSQL.ExecuteNonQuery();
LoadData(); // update display
}
}