PDA

View Full Version : پر کردن یک input خاص در صفحه



morteza561
جمعه 15 شهریور 1392, 01:40 صبح
سلام
من یه HTML دارم که توش یه عالمه تکست باکس داره. همشون هم به این صورت تعریف شدن:


<input name="LsnGrp[]" id="LsnGrp[]" type="text" value="" maxlength="3" size="3" onchange="LesInfo(105, document.PreSelCoursesList.elements[5].value, 0);">

فقط تنها فرقشون اینه که تو خصوصیت onchange اون عدد 105 بینشون متفاوته. یکی 107 هست، یکی 110 و ...

حالا من میخوام یه سری خاص از این تکست باکس ها رو پر کنم. مشکل اینجاست که از روش

webBrowser1.Document.All["LsnGrp[]"].SetAttribute("Value", "Data");

نمیشه استفاده کرد. چون همشون اسم و آی دیشون یکیه.

این روش رو هم تست کردم:

foreach (HtmlElement btn in webBrowser1.Document.GetElementsByTagName("input"))
{
if (btn.GetAttribute("onchange") == "LesInfo(105, document.PreSelCoursesList.elements[5].value, 0);")
{
do some thing ...
}
}

اما خروجی btn.GetAttribute همیشه یه جملست. اونم اینه: System.__ComObject

کسی میتونه کمکی بکنه؟ :متفکر:

morteza561
جمعه 15 شهریور 1392, 23:33 عصر
طبق معمول بازم دم بچه های stackoverflow گرم! نشد ما اینجا یه سوالی بپرسیم و ازش جواب بگیریم!

اینم یه راه حل خوب واسه بقیه دوستان اگه به همچین مشکلی خوردند:


foreach (HtmlElement hElement in webBrowser1.Document.GetElementsByTagName("input"))
{
if (hElement.GetAttribute("id") == "LsnGrp[]")
{
int iStartPos = hElement.OuterHtml.IndexOf("onchange=\"LesInfo(") + ("onchange=\"LesInfo(").Length;
int iEndPos = hElement.OuterHtml.IndexOf(",", iStartPos);
String s = hElement.OuterHtml.Substring(iStartPos, iEndPos - iStartPos);
if (s == "Data1")
hElement.SetAttribute("Value", "Data2");
}
}