سؤال

أنا أستخدم Visual Studio 2008 مع .NET Framework 3.5. لدي DataGrid مع LinkButton داخل Templatecolumn. أحاول معرفة كيفية تعطيل القدرة على النقر فوق LinkButton بمجرد النقر فوقه. يحتوي DataGrid الخاص بي على 6 أعمدة مع عرض عمود LinkButton سنوات والآخرين يعرضون بيانات نهاية العام لتلك السنوات. عند النقر فوق عام، يعرض DataGrid انهيار بيانات تلك السنة على أساس شهري شهريا. عندما يتم عرض DataGrid في انهيار الشهر بحلول الشهر، ما زلت بحاجة إلى عمود السنة مرئيا ولكن دون القدرة على النقر. لدي أيضا زر ورسم مخطط، حسب الرؤية الافتراضية يتم تعيينها كاذبة، ولكن بعد عام، يتم تحديد الرؤية تم تعيين الرؤية إلى TRUE مع الزر إعطاء القدرة على إغلاق من خلال الانهيار والرجوع إلى السنة انهيار نهاية. لدي كل شيء يعمل باستثناء تعطيل LinkButton.

هنا هو رمز Templatecolumn's DataGrid الخاص بي: giveacodicetagpre.

لقد جربت ما يلي:

محاولة 1 باستخدام رمز خلف: giveacodicetagpre.

محاولة 2 باستخدام جافا سكريبت: giveacodicetagpre.

- كانت المحاولة الثالثة قريبة التي فعلت رمادية خارج LinkButtons لكنها لم تعطيل القدرة على النقر عليها محاولة 3 باستخدام الخاصية "تمكين": giveacodicetagpre.

بعض الأفكار الأخرى التي قمت بتضمينها باستخدام حدث "OnClick" أو "صدمة". حاولت استخدام "OnClick" وفي الكود خلف ببساطة عن طريق استخدام: giveacodicetagpre.

أي مساعدة أو أفكار وأفكار وأمثلة، وما إلى ذلك سيكون موضع تقدير كبير. شكرا لكم جميعا مقدما!

الرمز المعدل: giveacodicetagpre.

هل كانت مفيدة؟

المحلول 2

Polity, thank you very much for your help, I really appreciate it. I found a different way to go about fixing this issue though.

.ASPX Code:

<TemplateColumn>
    <ItemTemplate>
        <asp:LinkButton runat="server" OnClick="test" Text='<%# DataBinder.Eval(Container, "DataItem.year") %></asp:LinkButton>
    </ItemTemplate>
</TemplateColumn>

.ASPX.CS Code:

protected void test(object sender, EventArgs e)
{
    foreach(var y in myDataGrid.Items)
    {
        LinkButton lb = ((y as TableRow).Cells[1].Controls[1] as LinkButton);
        lb.Enabled = false;
    }
}

نصائح أخرى

Option 3 and your last approach seem to be the way to go. The problem with LinkButtons is that even by putting Enabled on false, you wont block them from posting back. See: http://weblogs.asp.net/jeffwids/archive/2011/02/14/how-to-disable-an-asp-net-linkbutton-when-clicked.aspx

Therefore you have to do this manually with:

lb.Attributes.Add("onclick", "this.href='#';this.disabled=true;" + Page.ClientScript.GetPostBackEventReference(lb, "").ToString());
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top