[英]Set value in user Control textbox with select index changed Asp.net web forms
當在 gridview 中單擊按鈕選擇時,我試圖從數據庫中設置值。
這是我的控件背后的代碼,我已經獲取並設置了每個文本框:
public string candiType
{
get { return radType.SelectedValue; }
set { radType.SelectedValue = value; }
}
public string sfname
{
get { return txtFname.Text.Trim(); }
set { txtFname.Text = value; }
}
public string slname
{
get { return txtLName.Text.Trim(); }
set { txtLName.Text = value; }
}
public string soname
{
get { return txtOName.Text.Trim(); }
set { txtOName.Text = value; }
}
public string sNic
{
get { return txtStudNic.Text.Trim(); }
set { txtStudNic.Text = value; }
}
public string dob
{
get { return txtDob.Text; }
set { txtDob.Text = value; }
}
public string Street
{
get { return txtStreet.Text.Trim(); }
set { txtStreet.Text = value; }
}
public string PostalCode
{
get { return txtPostalCode.Text.Trim(); }
set { txtPostalCode.Text = value; }
}
public string Locality
{
get { return txtlocality.Text.Trim(); }
set { txtlocality.Text = value; }
}
public string TownVillage
{
get { return txtTownVillage.Text.Trim(); }
set { txtTownVillage.Text = value; }
}
public string College
{
get { return ddlCol.SelectedValue; }
set { ddlCol.SelectedValue = value; }
}
public int CollegeIndex
{
get { return ddlCol.SelectedIndex; }
set { ddlCol.SelectedIndex = value; }
}
public string rpFname
{
get { return txtRpfname.Text.Trim(); }
set { txtRpfname.Text = value; }
}
public string rpLname
{
get { return txtRplname.Text.Trim(); }
set { txtRplname.Text = value; }
}
public string rpNic
{
get { return txtRpNic.Text.Trim(); }
set { txtRpNic.Text = value; }
}
public string ContactNumber
{
get { return txtPhone.Text.Trim(); }
set { txtPhone.Text = value; }
}
public string Email
{
get { return txtEmail.Text.Trim(); }
set { txtEmail.Text = value; }
}
public bool showRadioCan
{
get { return pCand.Visible; }
set { pCand.Visible = value; }
}
public bool showDropCol
{
get { return pCol.Visible; }
set { pCol.Visible = value; }
}
ControlRegister.ascx 代碼:
<ContentTemplate>
<fieldset>
<legend>Student Info</legend>
<hr />
<asp:Panel ID="pCand" CssClass="row" runat="server">
<div class="col-12">
<h6 class="mb-2 pb-1">Private Candidate? </h6>
<div class="form-check form-check-inline">
<asp:RadioButtonList CssClass="form-check-input"
AutoPostBack="true"
OnSelectedIndexChanged="radType_SelectedIndexChanged" ID="radType" RepeatDirection="Horizontal" Width="100px" runat="server">
<asp:ListItem Value="Yes">Yes</asp:ListItem>
<asp:ListItem Selected="True" Value="No">No</asp:ListItem>
</asp:RadioButtonList>
</div>
</asp:Panel>
<div class="row">
<div class="col-md-4 mb-4">
<div class="form-outline">
<asp:Label ID="lblFName" runat="server" CssClass="form-label" Text="First Name"></asp:Label>
<asp:TextBox ID="txtFname" CssClass="form-control form-control-lg" type="text" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvfname" runat="server"
Display="Dynamic" ForeColor="Red"
ControlToValidate="txtFname"
SetFocusOnError="true"
ValidationGroup=""
ErrorMessage="First Name is Mandatory"></asp:RequiredFieldValidator>
</div>
</div>
<div class="col-md-4 mb-4 ">
<div class="form-outline">
<asp:Label ID="lblLName" runat="server" CssClass="form-label" Text="Last Name"></asp:Label>
<asp:TextBox ID="txtLName" CssClass="form-control form-control-lg" type="text" runat="server"></asp:TextBox>
<span class="focus-input100"></span>
<asp:RequiredFieldValidator ID="rfvlname" runat="server"
Display="Dynamic" ForeColor="Red"
ControlToValidate="txtLName"
SetFocusOnError="true"
ValidationGroup=""
ErrorMessage="Last Name is Mandatory"></asp:RequiredFieldValidator>
</div>
</div>
<div class="col-md-4 mb-4 ">
<div class="form-outline">
<asp:Label ID="lblOName" runat="server" CssClass="form-label" Text="Other Name"></asp:Label>
<asp:TextBox ID="txtOName" CssClass="form-control form-control-lg" type="text" runat="server"></asp:TextBox>
<span class="focus-input100"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-md-7 mb-4">
<asp:Label ID="lblNid" runat="server" CssClass="form-label" Text="Student NIC"></asp:Label>
<asp:TextBox ID="txtStudNic" CssClass="form-control form-control-lg" type="text" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator
ID="rfvNic"
runat="server"
Display="Dynamic"
ForeColor="Red"
ControlToValidate="txtStudNic"
SetFocusOnError="true"
ErrorMessage="NIC is Mandatory"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator
ID="revNic"
runat="server"
ValidationExpression="^[a-zA-Z0-9\s]{14}$"
Display="Dynamic"
ForeColor="Red"
ControlToValidate="txtStudNic"
SetFocusOnError="true"
ErrorMessage="Must contain 14 characters"></asp:RegularExpressionValidator>
<asp:CustomValidator
ID="cvStudNic"
runat="server"
OnServerValidate="cvNic_ServerValidate"
ClientValidationFunction="CustomCompareValidator"
Display="Dynamic"
ForeColor="Red"
ControlToValidate="txtStudNic"
SetFocusOnError="true"
ErrorMessage="Invalid NIC"></asp:CustomValidator>
</div>
<div class="col-md-5 mb-4 d-flex align-items-center">
<asp:Label ID="lblDob" runat="server" CssClass="form-label" Text="Date of Birth"></asp:Label>
<asp:TextBox ID="txtDob" CssClass="form-control form-control-lg" TextMode="Date" name="date" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvDob" runat="server"
Display="Dynamic" ForeColor="Red"
ControlToValidate="txtDob"
SetFocusOnError="true"
ValidationGroup=""
ErrorMessage="Date of Birth is Mandatory"></asp:RequiredFieldValidator>
<asp:RangeValidator ID="rvDb" runat="server"
Display="Dynamic"
SetFocusOnError="true"
Type="Date"
ForeColor="Red"
Text="You should be more than 14 years old"
ControlToValidate="txtDob"
ErrorMessage="You should be more than 14 years old">
</asp:RangeValidator>
</div>
</div>
<asp:Panel ID="pCol" CssClass="row" Visible="true" runat="server">
<div class="col-12">
<asp:Label ID="lblCollege" runat="server" CssClass="form-label" Text="College Attend"> </asp:Label>
<asp:DropDownList ID="ddlCol" CssClass="select form-control-lg" runat="server"
DataSourceID="srcCollege"
DataTextField="col_name"
DataValueField="col_Id"
AppendDataBoundItems="true">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="revCol" runat="server"
ControlToValidate="ddlCol"
SetFocusOnError="true"
Display="Dynamic"
ForeColor="Red"
InitialValue="-1"
ErrorMessage="Colleges selection is Mandatory">
</asp:RequiredFieldValidator>
</div>
</asp:Panel>
</fieldset>
<fieldset>
<legend>Address</legend>
<hr />
<div class="row">
<div class="col-md-7 mb-4 ">
<asp:Label ID="lblStreet" CssClass="form-label" runat="server" Text="Street"></asp:Label>
<asp:TextBox ID="txtStreet" CssClass="form-control form-control-lg" type="text" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvStreet" runat="server"
Display="Dynamic" ForeColor="Red"
ControlToValidate="txtStreet"
SetFocusOnError="true"
ValidationGroup=""
ErrorMessage="Street is Mandatory"></asp:RequiredFieldValidator>
</div>
<div class="col-md-5 mb-4 ">
<asp:Label ID="lblPostalCode" CssClass="form-label" runat="server" Text="Postal Code">
</asp:Label>
<asp:TextBox ID="txtPostalCode" CssClass="form-control form-control-lg" type="text" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvpCode" runat="server"
Display="Dynamic" ForeColor="Red"
ControlToValidate="txtPostalCode"
SetFocusOnError="true"
ValidationGroup=""
ErrorMessage="Postal Code is Mandatory"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="revPostalCode" runat="server"
ControlToValidate="txtPostalCode"
Display="Dynamic"
Text="Incorect Postal Code"
SetFocusOnError="true"
ForeColor="Red"
ValidationExpression="\b\d{5}\b"
ErrorMessage="Incorect Postal Code"></asp:RegularExpressionValidator>
</div>
</div>
<div class="row">
<div class="col-md-6 mb-4 ">
<asp:Label ID="lbllocality" runat="server" CssClass="form-label" Text="Locality"></asp:Label>
<asp:TextBox ID="txtlocality" CssClass="form-control form-control-lg" type="text" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvlocality" runat="server"
Display="Dynamic" ForeColor="Red"
ControlToValidate="txtlocality"
SetFocusOnError="true"
ValidationGroup=""
ErrorMessage="Locality is Mandatory"></asp:RequiredFieldValidator>
</div>
<div class="col-md-6 mb-4 ">
<asp:Label ID="lblTownVilage" runat="server" CssClass="form-label" Text="Town/Village"></asp:Label>
<asp:TextBox ID="txtTownVillage" CssClass="form-control form-control-lg" type="text" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvTV" runat="server"
Display="Dynamic" ForeColor="Red"
ControlToValidate="txtTownVillage"
SetFocusOnError="true"
ValidationGroup=""
ErrorMessage="Town/Village is Mandatory"></asp:RequiredFieldValidator>
</div>
</div>
</fieldset>
<fieldset>
<legend>Responsible Party Info</legend>
<hr />
<div class="row">
<div class="col-md-6 mb-4">
<div class="form-outline">
<asp:Label ID="lblRpfname" runat="server" CssClass="form-label" Text="Responsible Party First Name"></asp:Label>
<asp:TextBox ID="txtRpfname" CssClass="form-control form-control-lg" type="text" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvRpLname" runat="server"
Display="Dynamic" ForeColor="Red"
ControlToValidate="txtRpfname"
SetFocusOnError="true"
ValidationGroup=""
ErrorMessage="Responsible Party First Name is Mandatory"></asp:RequiredFieldValidator>
</div>
</div>
<div class="col-md-6 mb-4">
<div class="form-outline">
<asp:Label ID="lblRplname" runat="server" CssClass="form-label" Text="Responsible Party Last Name"></asp:Label>
<asp:TextBox ID="txtRplname" CssClass="form-control form-control-lg" type="text" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvRpFname" runat="server"
Display="Dynamic" ForeColor="Red"
ControlToValidate="txtRplname"
SetFocusOnError="true"
ValidationGroup=""
ErrorMessage="Responsible Party Last Name is Mandatory"></asp:RequiredFieldValidator>
</div>
</div>
</div>
<div class="row">
<div class="col-md-7 mb-4">
<asp:Label ID="lblRpNic" runat="server" CssClass="form-label" Text="Responsible Party NIC"></asp:Label>
<asp:TextBox ID="txtRpNic" CssClass="form-control form-control-lg" type="text" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator
ID="rfvRpNic"
runat="server"
Display="Dynamic"
ForeColor="Red"
ControlToValidate="txtRpNic"
SetFocusOnError="true"
ErrorMessage="NIC is Mandatory"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator
ID="revRpNic"
runat="server"
ValidationExpression="^[a-zA-Z0-9\s]{14}$"
Display="Dynamic"
ForeColor="Red"
ControlToValidate="txtRpNic"
SetFocusOnError="true"
ErrorMessage="Must contain 14 characters"></asp:RegularExpressionValidator>
<asp:CustomValidator
ID="cvRpNic"
runat="server"
OnServerValidate="cvNic_ServerValidate"
ClientValidationFunction="CustomCompareValidator"
Display="Dynamic"
ForeColor="Red"
ControlToValidate="txtRpNic"
SetFocusOnError="true"
ErrorMessage="Invalid NIC"></asp:CustomValidator>
<asp:CompareValidator ID="cmVnic"
runat="server"
ControlToValidate="txtRpNic"
ControlToCompare="txtStudNic"
Operator="NotEqual"
Type="String"
Display="Dynamic"
ForeColor="Red"
ErrorMessage="Nic cannot be same as for student"></asp:CompareValidator>
</div>
<div class="col-md-5 mb-4">
<asp:Label ID="lblPhone" CssClass="form-label" runat="server" Text="Phone Number"></asp:Label>
<asp:TextBox ID="txtPhone" CssClass="form-control form-control-lg" TextMode="Phone" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvMob" runat="server"
Display="Dynamic" ForeColor="Red"
ControlToValidate="txtPhone"
SetFocusOnError="true"
ErrorMessage="Contact number is Mandatory">
</asp:RequiredFieldValidator>
<asp:CompareValidator ID="cmpVtxtPhone" runat="server"
ControlToValidate="txtPhone"
Operator="DataTypeCheck"
Type="Integer"
SetFocusOnError="true"
Display="Dynamic"
Text="Incorect data type"
ForeColor="Red"
ErrorMessage="Should be only numeric"></asp:CompareValidator>
<asp:RegularExpressionValidator ID="revPhone"
runat="server"
ControlToValidate="txtPhone"
SetFocusOnError="true"
Display="Dynamic"
ValidationExpression="^([0-9]{8})$"
ErrorMessage="Invalid Phone Number"></asp:RegularExpressionValidator>
</div>
</div>
<div class="row">
<div class="col-md-7 mb-4">
<asp:Label ID="lblEmail" CssClass="form-label" runat="server" Text="Email Address"></asp:Label>
<asp:TextBox ID="txtEmail" CssClass="form-control form-control-lg" TextMode="Email" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvEmail" runat="server"
Display="Dynamic" ForeColor="Red"
ControlToValidate="txtEmail"
SetFocusOnError="true"
ErrorMessage="Email is Mandatory">
</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="revEmail" runat="server"
ControlToValidate="txtEmail"
Display="Dynamic"
Text="Incorect Email"
SetFocusOnError="true"
ForeColor="Red"
ValidationExpression="^[a-z0-9][-a-z0-9._]+@([-a-z0-9]+[.])+[a-z]{2,5}$"
ErrorMessage="Incorrect Email"></asp:RegularExpressionValidator>
</div>
</div>
</fieldset>
</ContentTemplate>
我的 gridview 網絡表單代碼:
<asp:GridView
ID="gvs_stud"
AutoGenerateColumns="false"
DataKeyNames="stud_Id"
ClientIDMode="Static"
OnSelectedIndexChanged="gvs_stud_SelectedIndexChanged"
CssClass="table table-striped table-bordered"
runat="server">
<Columns>
<asp:TemplateField HeaderText="First Name">
<ItemTemplate>
<asp:Label ID="lblstudFName" Font-Bold="true" ControlStyle-Width="200" Text='<%#Eval("stud_fname")%>'
runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Last Name">
<ItemTemplate>
<asp:Label ID="lblstudLName" Font-Bold="true" ControlStyle-Width="200" Text='<%#Eval("stud_lname")%>'
runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lbtnSelect" runat="server"
CssClass="btn btn-outline-info " CommandName="Select"
CausesValidation="false" Text="Select" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
這是 onclick 選擇按鈕背后的代碼,我嘗試在網格視圖和數據庫中設置值。
protected void gvs_stud_SelectedIndexChanged(object sender, EventArgs e)
{
string candidateType = colStudRegister.candiType;
string studentFname = colStudRegister.sfname;
string studentLname = colStudRegister.slname;
string studentoname = colStudRegister.soname;
string studentNic = colStudRegister.sNic;
string studentDob = colStudRegister.dob;
string street = colStudRegister.Street;
string postalCode = colStudRegister.PostalCode;
string locality = colStudRegister.Locality;
string townVillage = colStudRegister.TownVillage;
string college = colStudRegister.College;
string rpFname = colStudRegister.rpFname;
string rpLname = colStudRegister.rpLname;
string rpNic = colStudRegister.rpNic;
string rpContactNum = colStudRegister.ContactNumber;
string rpemail = colStudRegister.Email;
txtStudId.Text = (gvs_stud.DataKeys[gvs_stud.SelectedIndex].Value.ToString());
TextBox1.Text = ((Label)gvs_stud.SelectedRow.FindControl("lblstudLName")).Text;
studentFname = ((Label)gvs_stud.SelectedRow.FindControl("lblstudFName")).Text;
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@sid", txtStudId.Text);
cmd.CommandText = "SELECT * FROM tblStudent where stud_Id = @sid";
SqlDataReader dr;
con.Open();
dr = cmd.ExecuteReader();
while (dr.Read())
{
studentNic= dr["stud_nid"].ToString();
}
con.Close();
}
textbox1 不在控件中,我用它來測試我的 onclick 選擇按鈕是否正確,它是否顯示了對應的值。
但是當我嘗試使用控件文本框時,什么也沒有發生。
除了我看到的測試 TextBox1 之外,唯一的其他“控制文本框分配”是這一行:
txtStudId.Text = (gvs_stud.DataKeys[gvs_stud.SelectedIndex].Value.ToString());
在您提供的代碼中,沒有文本框 txtStudId。 您是否忘記在表單中實現文本框?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.