asp.net 및 C #을 사용하려고합니다. 주어진 값이 10 인 변수를 만들고 싶습니다.이 변수 풀을 호출 한 다음 드롭 다운 목록에서 1과 10 사이의 숫자를 선택할 수 있기를 원합니다.
ddl에서 5를 선택한다고 가정 해 보겠습니다. 그러면 풀에서 5를 빼야 풀이 5로 표시됩니다.
돌아가서 드롭 다운 목록에서 다른 숫자를 선택하려면 풀에서 뺄 수있는 숫자 만보고 싶습니다. IE는 풀에 5 개만 남아 있으므로 6을 선택할 수 없습니다. 도와주세요
그렇게 어렵나요?
아래 코드 주석에 따른 설명
.aspx
<asp:ScriptManager ID="sm" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="up" runat="server" UpdateMode="Conditional">
<ContentTemplate>
My Pool : <asp:Label ID="lbl" runat="server" Text="10"></asp:Label><br />
<asp:HiddenField ID="hf" runat="server" Value="10" />
<asp:DropDownList ID="ddl" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddl_SelectedIndexChanged"></asp:DropDownList>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddl" />
</Triggers>
</asp:UpdatePanel>
.cs
protected void Page_Load(object sender, EventArgs e)
{
// Check
if (!IsPostBack)
{
// Variable
DataTable dt = new DataTable();
dt.Columns.Add("Count");
// Loop
for (int i = 0; i < 11; i++)
dt.Rows.Add(i);
// Bind to Drop Down
ddl.DataSource = dt;
ddl.DataTextField = "Count";
ddl.DataValueField = "Count";
ddl.DataBind();
// Dispose
dt.Dispose();
}
}
protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
// Variable
int myPool = 0;
int mySelectedValue = 0;
int result = 0;
int dropDownValue = 0;
bool isInteger = false;
// Parse Integer
int.TryParse(hf.Value, out myPool);
int.TryParse(ddl.SelectedValue, out mySelectedValue);
// Set Result
result = myPool - mySelectedValue;
// Set to Hidden Value
hf.Value = result + "";
lbl.Text = result + "";
foreach (ListItem item in ddl.Items)
{
// Reset
isInteger = false;
dropDownValue = 0;
// Parse Drop Down Value
isInteger = int.TryParse(item.Value, out dropDownValue);
// Check
if (isInteger)
{
// Ensure is not less than 0, If less than 0 disabled the selected value
if ((result - dropDownValue) < 0)
item.Enabled = false;
}
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다